// VIDEO.CPP: SDL/local hardware specific video routines
//
// by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -------------------------------------------------------------
+// JLH 01/16/2010 Created this log ;-)
//
#include "video.h"
-#include "gui.h" // For "finished"
+//#include "gui.h" // For "finished"
#include "log.h"
#include "tom.h"
#include "sdlemu_opengl.h"
//shouldn't these exist here??? Prolly.
//And now, they do! :-)
SDL_Surface * surface, * mainSurface;
-SDL_Joystick * joystick;
+SDL_Joystick * joystick1;
Uint32 mainSurfaceFlags;
//int16 * backbuffer;
uint32 * backbuffer;
+#if SDL_BYTEORDER == SDL_BIG_ENDIAN
+ #define RMASK 0xFF000000
+ #define GMASK 0x00FF0000
+ #define BMASK 0x0000FF00
+ #define AMASK 0x000000FF
+#else
+ #define RMASK 0x000000FF
+ #define GMASK 0x0000FF00
+ #define BMASK 0x00FF0000
+ #define AMASK 0xFF000000
+#endif
+
+
// One of the reasons why OpenGL is slower then normal SDL rendering, is because
// the data is being pumped into the buffer every frame with a overflow as result.
// So, we going tot render every 1 frame instead of every 0 frame.
if (vjs.useOpenGL)
{
- // Initializing SDL attributes with OpenGL
- SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 0);
- SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
+ // Initializing SDL attributes with OpenGL
+ SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 0);
+ SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
mainSurfaceFlags = SDL_OPENGL;
}
else
// vsWidth = 1280;
//24BPP
// surface = SDL_CreateRGBSurface(SDL_SWSURFACE, VIRTUAL_SCREEN_WIDTH,
- surface = SDL_CreateRGBSurface(SDL_SWSURFACE, vsWidth, vsHeight, 32,
-#if SDL_BYTEORDER == SDL_BIG_ENDIAN
- 0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF);
-#else
- 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000);
-#endif//*/
+ surface = SDL_CreateRGBSurface(SDL_SWSURFACE, vsWidth, vsHeight, 32, RMASK, GMASK, BMASK, AMASK);
if (surface == NULL)
{
}
else
{
- if ((joystick = SDL_JoystickOpen(vjs.joyport)) == 0)
+ if ((joystick1 = SDL_JoystickOpen(vjs.joyport)) == 0)
{
vjs.useJoystick = false;
printf("VJ: Unable to open a Joystick on port: %d\n", (int)vjs.joyport);
if (vjs.useOpenGL)
sdlemu_close_opengl();
- SDL_JoystickClose(joystick);
+ SDL_JoystickClose(joystick1);
SDL_FreeSurface(surface);
free(backbuffer);
}
void ResizeScreen(uint32 width, uint32 height)
{
SDL_FreeSurface(surface);
- surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 32,
-#if SDL_BYTEORDER == SDL_BIG_ENDIAN
- 0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF);
-#else
- 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000);
-#endif//*/
+ surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 32, RMASK, GMASK, BMASK, AMASK);
if (surface == NULL)
{
//as well as screwing up SDL... !!! FIX !!!
// exit(1);
// OK, this is cleaner. We can't continue if there is no surface created!
- finished = true;
+#warning "!!! FIX !!! (finished = true)"
+// finished = true;
}
if (vjs.useOpenGL)