Changeset 171
- Timestamp:
- 07/18/13 00:50:12 (12 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nv/common.hh
r123 r171 122 122 #endif 123 123 124 #define NV_UNUSED(x) (void)(x) 124 125 #define NV_ASSERT(cond, msg) assert( (cond) && msg ) 125 126 #define NV_THROW(eobj, ...) { \ -
trunk/nv/gl/gl_context.hh
r157 r171 20 20 { 21 21 public: 22 gl_context( device* a_device ); 22 gl_context( device* a_device, void* a_win_handle ); 23 ~gl_context(); 23 24 virtual void clear( const clear_state& cs ); 24 25 // temporary … … 45 46 float m_clear_depth; 46 47 int m_clear_stencil; 48 void* m_handle; 47 49 }; 48 50 -
trunk/nv/gl/gl_window.hh
r121 r171 39 39 uint16 m_height; 40 40 string m_title; 41 void* m_ screen;41 void* m_handle; 42 42 gl_context* m_context; 43 43 44 }; 44 45 -
trunk/nv/lib/detail/sdl_functions.inc
r168 r171 8 8 /* SDL_rwops.h functions */ 9 9 NV_SDL_FUN( SDL_RWops *, SDL_RWFromFile, (const char *file, const char *mode) ); 10 NV_SDL_FUN( SDL_RWops *, SDL_RWFromFP, (FILE *fp, intautoclose) );10 NV_SDL_FUN( SDL_RWops *, SDL_RWFromFP, (FILE *fp, SDL_bool autoclose) ); 11 11 NV_SDL_FUN( SDL_RWops *, SDL_RWFromMem, (void *mem, int size) ); 12 12 NV_SDL_FUN( SDL_RWops *, SDL_RWFromConstMem, (const void *mem, int size) ); … … 26 26 NV_SDL_FUN( int, SDL_WriteBE64, (SDL_RWops *dst, Uint64 value) ); 27 27 28 /* SDL_video.h defines */29 NV_SDL_FUN( int, SDL_VideoInit, (const char *driver_name, Uint32 flags) );30 NV_SDL_FUN( void, SDL_VideoQuit, (void) );31 NV_SDL_FUN( char *, SDL_VideoDriverName, (char *namebuf, int maxlen) );32 NV_SDL_FUN( SDL_Surface *, SDL_GetVideoSurface, (void) );33 NV_SDL_FUN( const SDL_VideoInfo *, SDL_GetVideoInfo, (void) );34 NV_SDL_FUN( int, SDL_VideoModeOK, (int width, int height, int bpp, Uint32 flags) );35 NV_SDL_FUN( SDL_Rect **, SDL_ListModes, (SDL_PixelFormat *format, Uint32 flags) );36 NV_SDL_FUN( SDL_Surface *, SDL_SetVideoMode, (int width, int height, int bpp, Uint32 flags) );37 NV_SDL_FUN( void, SDL_UpdateRects, (SDL_Surface *screen, int numrects, SDL_Rect *rects) );38 NV_SDL_FUN( void, SDL_UpdateRect, (SDL_Surface *screen, Sint32 x, Sint32 y, Uint32 w, Uint32 h) );39 NV_SDL_FUN( int, SDL_Flip, (SDL_Surface *screen) );40 NV_SDL_FUN( int, SDL_SetGamma, (float red, float green, float blue) );41 NV_SDL_FUN( int, SDL_SetGammaRamp, (const Uint16 *red, const Uint16 *green, const Uint16 *blue) );42 NV_SDL_FUN( int, SDL_GetGammaRamp, (Uint16 *red, Uint16 *green, Uint16 *blue) );43 NV_SDL_FUN( int, SDL_SetColors, (SDL_Surface *surface, SDL_Color *colors, int firstcolor, int ncolors) );44 NV_SDL_FUN( int, SDL_SetPalette, (SDL_Surface *surface, int flags, SDL_Color *colors, int firstcolor, int ncolors) );45 NV_SDL_FUN( Uint32, SDL_MapRGB, (const SDL_PixelFormat * const format, const Uint8 r, const Uint8 g, const Uint8 b) );46 NV_SDL_FUN( Uint32, SDL_MapRGBA, (const SDL_PixelFormat * const format, const Uint8 r, const Uint8 g, const Uint8 b, const Uint8 a) );47 NV_SDL_FUN( void, SDL_GetRGB, (Uint32 pixel, const SDL_PixelFormat * const fmt, Uint8 *r, Uint8 *g, Uint8 *b) );48 NV_SDL_FUN( void, SDL_GetRGBA, (Uint32 pixel, const SDL_PixelFormat * const fmt, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a) );49 NV_SDL_FUN( SDL_Surface *, SDL_CreateRGBSurface, (Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask) );50 NV_SDL_FUN( SDL_Surface *, SDL_CreateRGBSurfaceFrom, (void *pixels, int width, int height, int depth, int pitch, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask) );51 NV_SDL_FUN( void, SDL_FreeSurface, (SDL_Surface *surface) );52 NV_SDL_FUN( int, SDL_LockSurface, (SDL_Surface *surface) );53 NV_SDL_FUN( void, SDL_UnlockSurface, (SDL_Surface *surface) );54 NV_SDL_FUN( SDL_Surface *, SDL_LoadBMP_RW, (SDL_RWops *src, int freesrc) );55 NV_SDL_FUN( int, SDL_SaveBMP_RW, (SDL_Surface *surface, SDL_RWops *dst, int freedst) );56 NV_SDL_FUN( int, SDL_SetColorKey, (SDL_Surface *surface, Uint32 flag, Uint32 key) );57 NV_SDL_FUN( int, SDL_SetAlpha, (SDL_Surface *surface, Uint32 flag, Uint8 alpha) );58 NV_SDL_FUN( SDL_bool, SDL_SetClipRect, (SDL_Surface *surface, const SDL_Rect *rect) );59 NV_SDL_FUN( void, SDL_GetClipRect, (SDL_Surface *surface, SDL_Rect *rect) );60 NV_SDL_FUN( SDL_Surface *, SDL_ConvertSurface, (SDL_Surface *src, SDL_PixelFormat *fmt, Uint32 flags) );61 NV_SDL_FUN( int, SDL_UpperBlit, (SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect) );62 NV_SDL_FUN( int, SDL_LowerBlit, (SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect) );63 NV_SDL_FUN( int, SDL_FillRect, (SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color) );64 NV_SDL_FUN( SDL_Surface *, SDL_DisplayFormat, (SDL_Surface *surface) );65 NV_SDL_FUN( SDL_Surface *, SDL_DisplayFormatAlpha, (SDL_Surface *surface) );66 NV_SDL_FUN( int, SDL_GL_LoadLibrary, (const char *path) );67 NV_SDL_FUN( void *, SDL_GL_GetProcAddress, (const char* proc) );68 NV_SDL_FUN( int, SDL_GL_SetAttribute, (SDL_GLattr attr, int value) );69 NV_SDL_FUN( int, SDL_GL_GetAttribute, (SDL_GLattr attr, int* value) );70 NV_SDL_FUN( void, SDL_GL_SwapBuffers, (void) );71 NV_SDL_FUN( void, SDL_GL_UpdateRects, (int numrects, SDL_Rect* rects) );72 NV_SDL_FUN( void, SDL_GL_Lock, (void) );73 NV_SDL_FUN( void, SDL_GL_Unlock, (void) );74 NV_SDL_FUN( void, SDL_WM_SetCaption, (const char *title, const char *icon) );75 NV_SDL_FUN( void, SDL_WM_GetCaption, (char **title, char **icon) );76 NV_SDL_FUN( void, SDL_WM_SetIcon, (SDL_Surface *icon, Uint8 *mask) );77 NV_SDL_FUN( int, SDL_WM_IconifyWindow, (void) );78 NV_SDL_FUN( int, SDL_WM_ToggleFullScreen, (SDL_Surface *surface) );79 NV_SDL_FUN( SDL_GrabMode, SDL_WM_GrabInput, (SDL_GrabMode mode) );80 81 28 /* SDL_audio.h functions */ 82 29 NV_SDL_FUN( int, SDL_AudioInit, (const char *driver_name) ); 83 30 NV_SDL_FUN( void, SDL_AudioQuit, (void) ); 84 NV_SDL_FUN( char *, SDL_AudioDriverName, (char *namebuf, int maxlen) );85 31 NV_SDL_FUN( int, SDL_OpenAudio, (SDL_AudioSpec *desired, SDL_AudioSpec *obtained) ); 86 32 NV_SDL_FUN( SDL_audiostatus, SDL_GetAudioStatus, (void) ); … … 88 34 NV_SDL_FUN( SDL_AudioSpec *, SDL_LoadWAV_RW, (SDL_RWops *src, int freesrc, SDL_AudioSpec *spec, Uint8 **audio_buf, Uint32 *audio_len) ); 89 35 NV_SDL_FUN( void, SDL_FreeWAV, (Uint8 *audio_buf) ); 90 NV_SDL_FUN( int, SDL_BuildAudioCVT, (SDL_AudioCVT *cvt, Uint16 src_format, Uint8 src_channels, int src_rate, Uint16dst_format, Uint8 dst_channels, int dst_rate) );36 NV_SDL_FUN( int, SDL_BuildAudioCVT, (SDL_AudioCVT *cvt, SDL_AudioFormat src_format, Uint8 src_channels, int src_rate, SDL_AudioFormat dst_format, Uint8 dst_channels, int dst_rate) ); 91 37 NV_SDL_FUN( int, SDL_ConvertAudio, (SDL_AudioCVT *cvt) ); 92 38 NV_SDL_FUN( void, SDL_MixAudio, (Uint8 *dst, const Uint8 *src, Uint32 len, int volume) ); … … 98 44 NV_SDL_FUN( SDL_bool, SDL_HasRDTSC, (void) ); 99 45 NV_SDL_FUN( SDL_bool, SDL_HasMMX, (void) ); 100 NV_SDL_FUN( SDL_bool, SDL_HasMMXExt, (void) );101 46 NV_SDL_FUN( SDL_bool, SDL_Has3DNow, (void) ); 102 NV_SDL_FUN( SDL_bool, SDL_Has3DNowExt, (void) );103 47 NV_SDL_FUN( SDL_bool, SDL_HasSSE, (void) ); 104 48 NV_SDL_FUN( SDL_bool, SDL_HasSSE2, (void) ); … … 106 50 107 51 /* SDL_error.h functions */ 108 NV_SDL_FUN( void, SDL_SetError, (const char *fmt, ...) );109 52 NV_SDL_FUN( char *, SDL_GetError, (void) ); 110 53 NV_SDL_FUN( void, SDL_ClearError, (void) ); 111 NV_SDL_FUN( void, SDL_Error, (SDL_errorcode code) );112 54 113 /* SDL_active.h functions */114 NV_SDL_FUN( Uint8, SDL_GetAppState, (void) );115 116 /* SDL_keyboard.h functions */117 NV_SDL_FUN( int, SDL_EnableUNICODE, (int enable) );118 NV_SDL_FUN( int, SDL_EnableKeyRepeat, (int delay, int interval) );119 NV_SDL_FUN( void, SDL_GetKeyRepeat, (int *delay, int *interval) );120 NV_SDL_FUN( Uint8 *, SDL_GetKeyState, (int *numkeys) );121 NV_SDL_FUN( SDLMod, SDL_GetModState, (void) );122 NV_SDL_FUN( void, SDL_SetModState, (SDLMod modstate) );123 NV_SDL_FUN( char *, SDL_GetKeyName, (SDLKey key) );124 125 55 /* SDL_mouse.h functions */ 126 NV_SDL_FUN( Uint8, SDL_GetMouseState, (int *x, int *y) );127 NV_SDL_FUN( Uint8, SDL_GetRelativeMouseState, (int *x, int *y) );128 NV_SDL_FUN( void, SDL_WarpMouse, (Uint16 x, Uint16 y) );129 NV_SDL_FUN( SDL_Cursor *, SDL_CreateCursor, (Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y) );130 56 NV_SDL_FUN( void, SDL_SetCursor, (SDL_Cursor *cursor) ); 131 57 NV_SDL_FUN( SDL_Cursor *, SDL_GetCursor, (void) ); … … 135 61 /* SDL_joystick.h functions */ 136 62 NV_SDL_FUN( int, SDL_NumJoysticks, (void) ); 137 NV_SDL_FUN( const char *, SDL_JoystickName, (int device_index) );138 NV_SDL_FUN( SDL_Joystick *, SDL_JoystickOpen, (int device_index) );139 NV_SDL_FUN( int, SDL_JoystickOpened, (int device_index) );140 NV_SDL_FUN( int, SDL_JoystickIndex, (SDL_Joystick *joystick) );141 63 NV_SDL_FUN( int, SDL_JoystickNumAxes, (SDL_Joystick *joystick) ); 142 64 NV_SDL_FUN( int, SDL_JoystickNumBalls, (SDL_Joystick *joystick) ); … … 144 66 NV_SDL_FUN( int, SDL_JoystickNumButtons, (SDL_Joystick *joystick) ); 145 67 NV_SDL_FUN( void, SDL_JoystickUpdate, (void) ); 68 NV_SDL_FUN( SDL_Joystick *, SDL_JoystickOpen, (int device_index) ); 146 69 NV_SDL_FUN( int, SDL_JoystickEventState, (int state) ); 147 70 NV_SDL_FUN( Sint16, SDL_JoystickGetAxis, (SDL_Joystick *joystick, int axis) ); … … 154 77 NV_SDL_FUN( Uint32, SDL_GetTicks, (void) ); 155 78 NV_SDL_FUN( void, SDL_Delay, (Uint32 ms) ); 156 NV_SDL_FUN( int, SDL_SetTimer, (Uint32 interval, SDL_TimerCallback callback) ); 157 NV_SDL_FUN( SDL_TimerID, SDL_AddTimer, (Uint32 interval, SDL_NewTimerCallback callback, void *param) ); 79 NV_SDL_FUN( SDL_TimerID, SDL_AddTimer, (Uint32 interval, SDL_TimerCallback callback, void *param) ); 158 80 NV_SDL_FUN( SDL_bool, SDL_RemoveTimer, (SDL_TimerID t) ); 159 160 /* SDL_version.h functions */161 NV_SDL_FUN( const SDL_version *, SDL_Linked_Version, (void) );162 81 163 82 /* SDL_event.h functions */ 164 83 NV_SDL_FUN( void, SDL_PumpEvents, (void) ); 165 NV_SDL_FUN( int, SDL_PeepEvents, (SDL_Event *events, int numevents, SDL_eventaction action, Uint32 mask) );166 84 NV_SDL_FUN( int, SDL_PollEvent, (SDL_Event *event) ); 167 85 NV_SDL_FUN( int, SDL_WaitEvent, (SDL_Event *event) ); 168 86 NV_SDL_FUN( int, SDL_PushEvent, (SDL_Event *event) ); 169 NV_SDL_FUN( void, SDL_SetEventFilter, (SDL_EventFilter filter) ); 170 NV_SDL_FUN( SDL_EventFilter, SDL_GetEventFilter, (void) ); 171 NV_SDL_FUN( Uint8, SDL_EventState, (Uint8 etype, int state) ); 87 88 /* SDL_video/SDL_surface */ 89 NV_SDL_FUN( SDL_Surface *, SDL_CreateRGBSurface, (Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask) ); 90 NV_SDL_FUN( SDL_Surface *, SDL_CreateRGBSurfaceFrom, (void *pixels, int width, int height, int depth, int pitch, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask) ); 91 NV_SDL_FUN( void , SDL_FreeSurface, (SDL_Surface * surface) ); 92 NV_SDL_FUN( int , SDL_LockSurface, (SDL_Surface * surface) ); 93 NV_SDL_FUN( void , SDL_UnlockSurface, (SDL_Surface * surface) ); 94 NV_SDL_FUN( int, SDL_SaveBMP_RW, (SDL_Surface *surface, SDL_RWops *dst, int freedst) ); 95 NV_SDL_FUN( SDL_Surface *, SDL_LoadBMP_RW, (SDL_RWops *src, int freesrc) ); 96 NV_SDL_FUN( SDL_bool , SDL_SetClipRect, (SDL_Surface * surface,const SDL_Rect * rect) ); 97 NV_SDL_FUN( void , SDL_GetClipRect, (SDL_Surface * surface,SDL_Rect * rect) ); 98 NV_SDL_FUN( SDL_Surface *, SDL_ConvertSurface, (SDL_Surface *src, SDL_PixelFormat *fmt, Uint32 flags) ); 99 100 NV_SDL_FUN( int , SDL_GL_LoadLibrary, (const char *path) ); 101 NV_SDL_FUN( void *, SDL_GL_GetProcAddress, (const char *proc) ); 102 NV_SDL_FUN( int, SDL_GL_SetAttribute, (SDL_GLattr attr, int value) ); 103 NV_SDL_FUN( int, SDL_GL_GetAttribute, (SDL_GLattr attr, int* value) ); 104 -
trunk/nv/lib/detail/sdl_image_functions.inc
r168 r171 2 2 NV_SDL_FUN( int, IMG_Init, (int flags) ); 3 3 NV_SDL_FUN( void, IMG_Quit, (void) ); 4 NV_SDL_FUN( SDL_Surface *, IMG_LoadTyped_RW, (SDL_RWops *src, int freesrc, char *etype) );5 4 NV_SDL_FUN( SDL_Surface *, IMG_Load, (const char *file) ); 6 5 NV_SDL_FUN( SDL_Surface *, IMG_Load_RW, (SDL_RWops *src, int freesrc) ); 6 7 7 NV_SDL_FUN( int, IMG_isICO, (SDL_RWops *src) ); 8 8 NV_SDL_FUN( int, IMG_isCUR, (SDL_RWops *src) ); … … 20 20 NV_SDL_FUN( SDL_Surface *, IMG_LoadTGA_RW, (SDL_RWops *src) ); 21 21 NV_SDL_FUN( SDL_Surface *, IMG_LoadTIF_RW, (SDL_RWops *src) ); 22 23 #if NV_SDL_VERSION == NV_SDL_20 24 NV_SDL_FUN( int , IMG_SavePNG,(SDL_Surface *surface, const char *file) ); 25 NV_SDL_FUN( int , IMG_SavePNG_RW,(SDL_Surface *surface, SDL_RWops *dst, int freedst) ); 26 NV_SDL_FUN( SDL_Texture *, IMG_LoadTexture,(SDL_Renderer *renderer, const char *file) ); 27 NV_SDL_FUN( SDL_Texture *, IMG_LoadTexture_RW,(SDL_Renderer *renderer, SDL_RWops *src, int freesrc) ); 28 NV_SDL_FUN( SDL_Texture *, IMG_LoadTextureTyped_RW,(SDL_Renderer *renderer, SDL_RWops *src, int freesrc, const char *type) ); 29 NV_SDL_FUN( SDL_Surface *, IMG_LoadTyped_RW, (SDL_RWops *src, int freesrc, const char *etype) ); 30 #else 31 NV_SDL_FUN( SDL_Surface *, IMG_LoadTyped_RW, (SDL_RWops *src, int freesrc, char *etype) ); 32 #endif -
trunk/nv/lib/sdl.hh
r170 r171 64 64 SDL_TRUE = 1 65 65 } SDL_bool; 66 67 static_assert(sizeof(SDL_bool) == sizeof(int), "SDL_bool has wrong size!"); 66 68 67 69 typedef int8_t Sint8; … … 107 109 ) 108 110 #endif 111 112 #define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression) 113 #define SDL_static_cast(type, expression) static_cast<type>(expression) 114 #define SDL_const_cast(type, expression) const_cast<type>(expression) 115 116 #define SDL_FOURCC(A, B, C, D) \ 117 ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \ 118 (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \ 119 (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \ 120 (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24)) 121 109 122 /* SDL_error.h defines */ 110 123 typedef enum { … … 116 129 SDL_LASTERROR 117 130 } SDL_errorcode; 118 119 #if NV_SDL_VERSION == NV_SDL_20120 #define SDL_RWOPS_UNKNOWN 0121 #define SDL_RWOPS_WINFILE 1122 #define SDL_RWOPS_STDFILE 2123 #define SDL_RWOPS_JNIFILE 3124 #define SDL_RWOPS_MEMORY 4125 #define SDL_RWOPS_MEMORY_RO 5126 #endif127 131 128 132 /* SDL_rwops.h defines */ … … 214 218 215 219 #if NV_SDL_VERSION == NV_SDL_20 220 #define SDL_RWOPS_UNKNOWN 0 221 #define SDL_RWOPS_WINFILE 1 222 #define SDL_RWOPS_STDFILE 2 223 #define SDL_RWOPS_JNIFILE 3 224 #define SDL_RWOPS_MEMORY 4 225 #define SDL_RWOPS_MEMORY_RO 5 226 #endif 227 228 /* SDL_pixels.h defines (2.0 only) */ 229 #if NV_SDL_VERSION == NV_SDL_20 230 enum 231 { 232 SDL_PIXELTYPE_UNKNOWN, 233 SDL_PIXELTYPE_INDEX1, 234 SDL_PIXELTYPE_INDEX4, 235 SDL_PIXELTYPE_INDEX8, 236 SDL_PIXELTYPE_PACKED8, 237 SDL_PIXELTYPE_PACKED16, 238 SDL_PIXELTYPE_PACKED32, 239 SDL_PIXELTYPE_ARRAYU8, 240 SDL_PIXELTYPE_ARRAYU16, 241 SDL_PIXELTYPE_ARRAYU32, 242 SDL_PIXELTYPE_ARRAYF16, 243 SDL_PIXELTYPE_ARRAYF32 244 }; 245 246 enum 247 { 248 SDL_BITMAPORDER_NONE, 249 SDL_BITMAPORDER_4321, 250 SDL_BITMAPORDER_1234 251 }; 252 253 enum 254 { 255 SDL_PACKEDORDER_NONE, 256 SDL_PACKEDORDER_XRGB, 257 SDL_PACKEDORDER_RGBX, 258 SDL_PACKEDORDER_ARGB, 259 SDL_PACKEDORDER_RGBA, 260 SDL_PACKEDORDER_XBGR, 261 SDL_PACKEDORDER_BGRX, 262 SDL_PACKEDORDER_ABGR, 263 SDL_PACKEDORDER_BGRA 264 }; 265 266 enum 267 { 268 SDL_ARRAYORDER_NONE, 269 SDL_ARRAYORDER_RGB, 270 SDL_ARRAYORDER_RGBA, 271 SDL_ARRAYORDER_ARGB, 272 SDL_ARRAYORDER_BGR, 273 SDL_ARRAYORDER_BGRA, 274 SDL_ARRAYORDER_ABGR 275 }; 276 277 enum 278 { 279 SDL_PACKEDLAYOUT_NONE, 280 SDL_PACKEDLAYOUT_332, 281 SDL_PACKEDLAYOUT_4444, 282 SDL_PACKEDLAYOUT_1555, 283 SDL_PACKEDLAYOUT_5551, 284 SDL_PACKEDLAYOUT_565, 285 SDL_PACKEDLAYOUT_8888, 286 SDL_PACKEDLAYOUT_2101010, 287 SDL_PACKEDLAYOUT_1010102 288 }; 289 290 #define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D) 291 292 #define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \ 293 ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \ 294 ((bits) << 8) | ((bytes) << 0)) 295 296 #define SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F) 297 #define SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F) 298 #define SDL_PIXELORDER(X) (((X) >> 20) & 0x0F) 299 #define SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F) 300 #define SDL_BITSPERPIXEL(X) (((X) >> 8) & 0xFF) 301 #define SDL_BYTESPERPIXEL(X) \ 302 (SDL_ISPIXELFORMAT_FOURCC(X) ? \ 303 ((((X) == SDL_PIXELFORMAT_YUY2) || \ 304 ((X) == SDL_PIXELFORMAT_UYVY) || \ 305 ((X) == SDL_PIXELFORMAT_YVYU)) ? 2 : 1) : (((X) >> 0) & 0xFF)) 306 307 #define SDL_ISPIXELFORMAT_INDEXED(format) \ 308 (!SDL_ISPIXELFORMAT_FOURCC(format) && \ 309 ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX1) || \ 310 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX4) || \ 311 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX8))) 312 313 #define SDL_ISPIXELFORMAT_ALPHA(format) \ 314 (!SDL_ISPIXELFORMAT_FOURCC(format) && \ 315 ((SDL_PIXELORDER(format) == SDL_PACKEDORDER_ARGB) || \ 316 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_RGBA) || \ 317 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_ABGR) || \ 318 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_BGRA))) 319 320 #define SDL_ISPIXELFORMAT_FOURCC(format) \ 321 ((format) && (SDL_PIXELFLAG(format) != 1)) 322 323 enum 324 { 325 SDL_PIXELFORMAT_UNKNOWN, 326 SDL_PIXELFORMAT_INDEX1LSB = 327 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_4321, 0, 328 1, 0), 329 SDL_PIXELFORMAT_INDEX1MSB = 330 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_1234, 0, 331 1, 0), 332 SDL_PIXELFORMAT_INDEX4LSB = 333 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_4321, 0, 334 4, 0), 335 SDL_PIXELFORMAT_INDEX4MSB = 336 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_1234, 0, 337 4, 0), 338 SDL_PIXELFORMAT_INDEX8 = 339 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1), 340 SDL_PIXELFORMAT_RGB332 = 341 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED8, SDL_PACKEDORDER_XRGB, 342 SDL_PACKEDLAYOUT_332, 8, 1), 343 SDL_PIXELFORMAT_RGB444 = 344 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, 345 SDL_PACKEDLAYOUT_4444, 12, 2), 346 SDL_PIXELFORMAT_RGB555 = 347 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, 348 SDL_PACKEDLAYOUT_1555, 15, 2), 349 SDL_PIXELFORMAT_BGR555 = 350 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, 351 SDL_PACKEDLAYOUT_1555, 15, 2), 352 SDL_PIXELFORMAT_ARGB4444 = 353 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, 354 SDL_PACKEDLAYOUT_4444, 16, 2), 355 SDL_PIXELFORMAT_RGBA4444 = 356 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, 357 SDL_PACKEDLAYOUT_4444, 16, 2), 358 SDL_PIXELFORMAT_ABGR4444 = 359 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, 360 SDL_PACKEDLAYOUT_4444, 16, 2), 361 SDL_PIXELFORMAT_BGRA4444 = 362 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, 363 SDL_PACKEDLAYOUT_4444, 16, 2), 364 SDL_PIXELFORMAT_ARGB1555 = 365 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, 366 SDL_PACKEDLAYOUT_1555, 16, 2), 367 SDL_PIXELFORMAT_RGBA5551 = 368 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, 369 SDL_PACKEDLAYOUT_5551, 16, 2), 370 SDL_PIXELFORMAT_ABGR1555 = 371 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, 372 SDL_PACKEDLAYOUT_1555, 16, 2), 373 SDL_PIXELFORMAT_BGRA5551 = 374 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, 375 SDL_PACKEDLAYOUT_5551, 16, 2), 376 SDL_PIXELFORMAT_RGB565 = 377 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, 378 SDL_PACKEDLAYOUT_565, 16, 2), 379 SDL_PIXELFORMAT_BGR565 = 380 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, 381 SDL_PACKEDLAYOUT_565, 16, 2), 382 SDL_PIXELFORMAT_RGB24 = 383 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0, 384 24, 3), 385 SDL_PIXELFORMAT_BGR24 = 386 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGR, 0, 387 24, 3), 388 SDL_PIXELFORMAT_RGB888 = 389 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB, 390 SDL_PACKEDLAYOUT_8888, 24, 4), 391 SDL_PIXELFORMAT_RGBX8888 = 392 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBX, 393 SDL_PACKEDLAYOUT_8888, 24, 4), 394 SDL_PIXELFORMAT_BGR888 = 395 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR, 396 SDL_PACKEDLAYOUT_8888, 24, 4), 397 SDL_PIXELFORMAT_BGRX8888 = 398 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRX, 399 SDL_PACKEDLAYOUT_8888, 24, 4), 400 SDL_PIXELFORMAT_ARGB8888 = 401 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, 402 SDL_PACKEDLAYOUT_8888, 32, 4), 403 SDL_PIXELFORMAT_RGBA8888 = 404 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA, 405 SDL_PACKEDLAYOUT_8888, 32, 4), 406 SDL_PIXELFORMAT_ABGR8888 = 407 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR, 408 SDL_PACKEDLAYOUT_8888, 32, 4), 409 SDL_PIXELFORMAT_BGRA8888 = 410 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRA, 411 SDL_PACKEDLAYOUT_8888, 32, 4), 412 SDL_PIXELFORMAT_ARGB2101010 = 413 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, 414 SDL_PACKEDLAYOUT_2101010, 32, 4), 415 416 SDL_PIXELFORMAT_YV12 = SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'), 417 SDL_PIXELFORMAT_IYUV = SDL_DEFINE_PIXELFOURCC('I', 'Y', 'U', 'V'), 418 SDL_PIXELFORMAT_YUY2 = SDL_DEFINE_PIXELFOURCC('Y', 'U', 'Y', '2'), 419 SDL_PIXELFORMAT_UYVY = SDL_DEFINE_PIXELFOURCC('U', 'Y', 'V', 'Y'), 420 SDL_PIXELFORMAT_YVYU = SDL_DEFINE_PIXELFOURCC('Y', 'V', 'Y', 'U') 421 }; 422 423 typedef enum 424 { 425 SDL_POWERSTATE_UNKNOWN, 426 SDL_POWERSTATE_ON_BATTERY, 427 SDL_POWERSTATE_NO_BATTERY, 428 SDL_POWERSTATE_CHARGING, 429 SDL_POWERSTATE_CHARGED 430 } SDL_PowerState; 431 #endif 432 433 #if NV_SDL_VERSION == NV_SDL_20 434 435 typedef enum 436 { 437 SDL_BLENDMODE_NONE = 0x00000000, 438 SDL_BLENDMODE_BLEND = 0x00000001, 439 SDL_BLENDMODE_ADD = 0x00000002, 440 SDL_BLENDMODE_MOD = 0x00000004 441 } SDL_BlendMode; 442 216 443 typedef struct SDL_PixelFormat { 217 444 Uint32 format; … … 362 589 typedef enum 363 590 { 591 SDL_RENDERER_SOFTWARE = 0x00000001, 592 SDL_RENDERER_ACCELERATED = 0x00000002, 593 SDL_RENDERER_PRESENTVSYNC = 0x00000004, 594 SDL_RENDERER_TARGETTEXTURE = 0x00000008 595 } SDL_RendererFlags; 596 597 typedef struct SDL_RendererInfo 598 { 599 const char *name; 600 Uint32 flags; 601 Uint32 num_texture_formats; 602 Uint32 texture_formats[16]; 603 int max_texture_width; 604 int max_texture_height; 605 } SDL_RendererInfo; 606 607 typedef enum 608 { 609 SDL_TEXTUREACCESS_STATIC, 610 SDL_TEXTUREACCESS_STREAMING, 611 SDL_TEXTUREACCESS_TARGET 612 } SDL_TextureAccess; 613 614 typedef enum 615 { 616 SDL_TEXTUREMODULATE_NONE = 0x00000000, 617 SDL_TEXTUREMODULATE_COLOR = 0x00000001, 618 SDL_TEXTUREMODULATE_ALPHA = 0x00000002 619 } SDL_TextureModulate; 620 621 typedef enum 622 { 623 SDL_FLIP_NONE = 0x00000000, 624 SDL_FLIP_HORIZONTAL = 0x00000001, 625 SDL_FLIP_VERTICAL = 0x00000002 626 } SDL_RendererFlip; 627 628 struct SDL_Renderer; 629 typedef struct SDL_Renderer SDL_Renderer; 630 631 struct SDL_Texture; 632 typedef struct SDL_Texture SDL_Texture; 633 634 #define SDL_NONSHAPEABLE_WINDOW -1 635 #define SDL_INVALID_SHAPE_ARGUMENT -2 636 #define SDL_WINDOW_LACKS_SHAPE -3 637 638 typedef enum { 639 ShapeModeDefault, 640 ShapeModeBinarizeAlpha, 641 ShapeModeReverseBinarizeAlpha, 642 ShapeModeColorKey 643 } WindowShapeMode; 644 645 typedef union { 646 Uint8 binarizationCutoff; 647 SDL_Color colorKey; 648 } SDL_WindowShapeParams; 649 650 typedef struct SDL_WindowShapeMode { 651 WindowShapeMode mode; 652 SDL_WindowShapeParams parameters; 653 } SDL_WindowShapeMode; 654 655 typedef Sint64 SDL_TouchID; 656 typedef Sint64 SDL_FingerID; 657 658 typedef struct SDL_Finger 659 { 660 SDL_FingerID id; 661 float x; 662 float y; 663 float pressure; 664 } SDL_Finger; 665 666 #define SDL_TOUCH_MOUSEID ((Uint32)-1) 667 668 typedef enum 669 { 364 670 SDL_WINDOW_FULLSCREEN = 0x00000001, 365 671 SDL_WINDOW_OPENGL = 0x00000002, … … 500 806 typedef void (NV_SDL_APIENTRY * SDL_AudioFilter) (struct SDL_AudioCVT * cvt, SDL_AudioFormat format); 501 807 808 typedef Uint32 SDL_AudioDeviceID; 809 502 810 typedef struct SDL_AudioSpec 503 811 { … … 543 851 544 852 #define SDL_MIX_MAXVOLUME 128 853 854 #if NV_SDL_VERSION == NV_SDL_20 855 /* SDL_hints.h defines */ 856 #define SDL_HINT_FRAMEBUFFER_ACCELERATION "SDL_FRAMEBUFFER_ACCELERATION" 857 #define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER" 858 #define SDL_HINT_RENDER_OPENGL_SHADERS "SDL_RENDER_OPENGL_SHADERS" 859 #define SDL_HINT_RENDER_SCALE_QUALITY "SDL_RENDER_SCALE_QUALITY" 860 #define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC" 861 #define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE" 862 #define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA" 863 #define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR" 864 #define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD" 865 #define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS" 866 #define SDL_HINT_IDLE_TIMER_DISABLED "SDL_IOS_IDLE_TIMER_DISABLED" 867 #define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS" 868 #define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED" 869 #define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG" 870 #define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS" 871 #define SDL_HINT_ALLOW_TOPMOST "SDL_ALLOW_TOPMOST" 872 typedef enum 873 { 874 SDL_HINT_DEFAULT, 875 SDL_HINT_NORMAL, 876 SDL_HINT_OVERRIDE 877 } SDL_HintPriority; 878 #endif; 879 880 #if NV_SDL_VERSION == NV_SDL_20 881 /* SDL_messagebox.h defines */ 882 typedef enum 883 { 884 SDL_MESSAGEBOX_ERROR = 0x00000010, 885 SDL_MESSAGEBOX_WARNING = 0x00000020, 886 SDL_MESSAGEBOX_INFORMATION = 0x00000040 887 } SDL_MessageBoxFlags; 888 889 typedef enum 890 { 891 SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, 892 SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002 893 } SDL_MessageBoxButtonFlags; 894 895 typedef struct 896 { 897 Uint32 flags; 898 int buttonid; 899 const char * text; 900 } SDL_MessageBoxButtonData; 901 902 typedef struct 903 { 904 Uint8 r, g, b; 905 } SDL_MessageBoxColor; 906 907 typedef enum 908 { 909 SDL_MESSAGEBOX_COLOR_BACKGROUND, 910 SDL_MESSAGEBOX_COLOR_TEXT, 911 SDL_MESSAGEBOX_COLOR_BUTTON_BORDER, 912 SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND, 913 SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED, 914 SDL_MESSAGEBOX_COLOR_MAX 915 } SDL_MessageBoxColorType; 916 917 typedef struct 918 { 919 SDL_MessageBoxColor colors[SDL_MESSAGEBOX_COLOR_MAX]; 920 } SDL_MessageBoxColorScheme; 921 922 typedef struct SDL_Window SDL_Window; 923 924 typedef struct 925 { 926 Uint32 flags; 927 SDL_Window *window; 928 const char *title; 929 const char *message; 930 int numbuttons; 931 const SDL_MessageBoxButtonData *buttons; 932 const SDL_MessageBoxColorScheme *colorScheme; 933 } SDL_MessageBoxData; 934 #endif 935 545 936 546 937 /* SDL_active.h defines */ … … 576 967 } SDLMod; 577 968 969 typedef SDLMod SDL_Keymod; // 2.0 970 578 971 #define KMOD_CTRL (KMOD_LCTRL|KMOD_RCTRL) 579 972 #define KMOD_SHIFT (KMOD_LSHIFT|KMOD_RSHIFT) … … 595 988 #define SDL_ALL_HOTKEYS 0xFFFFFFFF 596 989 #else 990 typedef Sint32 SDL_Keycode; 597 991 typedef struct SDL_Keysym 598 992 { … … 682 1076 #define SDL_PRESSED 1 683 1077 1078 /* SDL_gamecontroller.h defines (2.0 only)*/ 1079 #if NV_SDL_VERSION == NV_SDL_20 1080 struct _SDL_GameController; 1081 typedef struct _SDL_GameController SDL_GameController; 1082 1083 typedef enum 1084 { 1085 SDL_CONTROLLER_BINDTYPE_NONE = 0, 1086 SDL_CONTROLLER_BINDTYPE_BUTTON, 1087 SDL_CONTROLLER_BINDTYPE_AXIS, 1088 SDL_CONTROLLER_BINDTYPE_HAT 1089 } SDL_GameControllerBindType; 1090 1091 typedef struct SDL_GameControllerButtonBind 1092 { 1093 SDL_GameControllerBindType bindType; 1094 union 1095 { 1096 int button; 1097 int axis; 1098 struct { 1099 int hat; 1100 int hat_mask; 1101 } hat; 1102 } value; 1103 1104 } SDL_GameControllerButtonBind; 1105 1106 typedef enum 1107 { 1108 SDL_CONTROLLER_AXIS_INVALID = -1, 1109 SDL_CONTROLLER_AXIS_LEFTX, 1110 SDL_CONTROLLER_AXIS_LEFTY, 1111 SDL_CONTROLLER_AXIS_RIGHTX, 1112 SDL_CONTROLLER_AXIS_RIGHTY, 1113 SDL_CONTROLLER_AXIS_TRIGGERLEFT, 1114 SDL_CONTROLLER_AXIS_TRIGGERRIGHT, 1115 SDL_CONTROLLER_AXIS_MAX 1116 } SDL_GameControllerAxis; 1117 1118 typedef enum 1119 { 1120 SDL_CONTROLLER_BUTTON_INVALID = -1, 1121 SDL_CONTROLLER_BUTTON_A, 1122 SDL_CONTROLLER_BUTTON_B, 1123 SDL_CONTROLLER_BUTTON_X, 1124 SDL_CONTROLLER_BUTTON_Y, 1125 SDL_CONTROLLER_BUTTON_BACK, 1126 SDL_CONTROLLER_BUTTON_GUIDE, 1127 SDL_CONTROLLER_BUTTON_START, 1128 SDL_CONTROLLER_BUTTON_LEFTSTICK, 1129 SDL_CONTROLLER_BUTTON_RIGHTSTICK, 1130 SDL_CONTROLLER_BUTTON_LEFTSHOULDER, 1131 SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, 1132 SDL_CONTROLLER_BUTTON_DPAD_UP, 1133 SDL_CONTROLLER_BUTTON_DPAD_DOWN, 1134 SDL_CONTROLLER_BUTTON_DPAD_LEFT, 1135 SDL_CONTROLLER_BUTTON_DPAD_RIGHT, 1136 SDL_CONTROLLER_BUTTON_MAX 1137 } SDL_GameControllerButton; 1138 1139 typedef Sint64 SDL_GestureID; 1140 #endif 1141 684 1142 #if NV_SDL_VERSION == NV_SDL_12 685 1143 #include <nv/lib/detail/sdl_events_12.inc> … … 688 1146 #endif 689 1147 1148 #if NV_SDL_VERSION == NV_SDL_20 1149 typedef int (NV_SDL_APIENTRY * SDL_EventFilter) (void *userdata, SDL_Event * event); 1150 #endif 690 1151 691 1152 #define SDL_QUERY -1 … … 701 1162 #define SDL_TIMESLICE 10 702 1163 #define TIMER_RESOLUTION 10 703 typedef Uint32 (NV_SDL_APIENTRY *SDL_TimerCallback)(Uint32 interval); 704 typedef Uint32 (NV_SDL_APIENTRY *SDL_NewTimerCallback)(Uint32 interval, void *param); 1164 typedef Uint32 (NV_SDL_APIENTRY *SDL_TimerCallback)(Uint32 interval, void *param); 705 1165 typedef struct _SDL_TimerID *SDL_TimerID; 706 1166 #endif … … 729 1189 #endif 730 1190 #include <nv/lib/detail/sdl_functions.inc> 1191 #if NV_SDL_VERSION == NV_SDL_12 1192 #include <nv/lib/detail/sdl_functions_12.inc> 1193 #elif NV_SDL_VERSION == NV_SDL_20 1194 #include <nv/lib/detail/sdl_functions_20.inc> 1195 #endif 731 1196 #undef NV_SDL_FUN 732 1197 -
trunk/nv/lib/sdl_image.hh
r170 r171 12 12 13 13 #if NV_PLATFORM == NV_WINDOWS 14 # define NV_SDL_IMAGE_PATH "SDL_image.dll" 14 # define NV_SDL_IMAGE_PATH_12 "SDL_image.dll" 15 # define NV_SDL_IMAGE_PATH_20 "SDL2_image.dll" 15 16 #elif NV_PLATFORM == NV_APPLE 16 # define NV_SDL_IMAGE_PATH "SDL_image.framework/SDL_image" 17 # define NV_SDL_IMAGE_PATH_12 "SDL_image.framework/SDL_image" 18 # define NV_SDL_IMAGE_PATH_20 "SDL2_image.framework/SDL_image" 17 19 #else 18 # define NV_SDL_IMAGE_PATH "libSDL_image-1.2.so.0" 20 # define NV_SDL_IMAGE_PATH_12 "libSDL_image-1.2.so.0" 21 # define NV_SDL_IMAGE_PATH_20 "libSDL2_image-2.0.so.0" 22 #endif 23 24 #if NV_SDL_VERSION == NV_SDL_12 25 # define NV_SDL_IMAGE_PATH NV_SDL_IMAGE_PATH_12 26 #elif NV_SDL_VERSION == NV_SDL_20 27 # define NV_SDL_IMAGE_PATH NV_SDL_IMAGE_PATH_20 28 #elif NV_SDL_VERSION == NV_SDL_C 29 # define NV_SDL_IMAGE_PATH nullptr 30 #else 31 # error "Unrecognized NV_SDL_VERSION!" 19 32 #endif 20 33 … … 22 35 23 36 /** SDL_image defines */ 37 #if NV_SDL_VERSION == NV_SDL_20 38 #define SDL_IMAGE_MAJOR_VERSION 2 39 #define SDL_IMAGE_MINOR_VERSION 0 40 #define SDL_IMAGE_PATCHLEVEL 0 41 #else 24 42 #define SDL_IMAGE_MAJOR_VERSION 1 25 43 #define SDL_IMAGE_MINOR_VERSION 2 26 44 #define SDL_IMAGE_PATCHLEVEL 11 45 #endif 46 27 47 #define SDL_IMAGE_VERSION(X) \ 28 48 { \ -
trunk/src/gl/gl_context.cc
r157 r171 7 7 #include "nv/gl/gl_enum.hh" 8 8 #include "nv/lib/gl.hh" 9 #include "nv/lib/sdl.hh" 9 10 10 11 using namespace nv; … … 349 350 350 351 351 gl_context::gl_context( device* a_device ) 352 : context( a_device ) 353 { 352 gl_context::gl_context( device* a_device, void* a_win_handle ) 353 : context( a_device ), m_handle( nullptr ) 354 { 355 #if NV_SDL_VERSION == NV_SDL_20 356 m_handle = SDL_GL_CreateContext( static_cast<SDL_Window*>( a_win_handle ) ); 357 358 if ( m_handle == 0 ) 359 { 360 NV_LOG( LOG_CRITICAL, "GL Context creation failed: " << SDL_GetError( ) ); 361 return; // TODO: Error report 362 } 363 #else 364 NV_UNUSED( a_win_handle ); 365 #endif 366 367 nv::load_gl_library(); 368 NV_LOG( LOG_INFO, "OpenGL Vendor : " << glGetString(GL_VENDOR) ); 369 NV_LOG( LOG_INFO, "OpenGL Renderer : " << glGetString(GL_RENDERER) ); 370 NV_LOG( LOG_INFO, "OpenGL Version : " << glGetString(GL_VERSION) ); 371 NV_LOG( LOG_INFO, "OpenGL GLSL Version : " << glGetString(GL_SHADING_LANGUAGE_VERSION) ); 372 #if NV_SDL_VERSION == NV_SDL_20 373 // SDL_GL_SetSwapInterval(1); 374 #endif 375 354 376 // TODO: do we really need this? 355 377 glPixelStorei( GL_UNPACK_ALIGNMENT, 1 ); 378 356 379 force_apply_render_state( m_render_state ); 357 380 } 381 382 383 nv::gl_context::~gl_context() 384 { 385 #if NV_SDL_VERSION == NV_SDL_20 386 SDL_GL_DeleteContext(static_cast<SDL_GLContext>( m_handle ) ); 387 #endif 388 } 389 358 390 359 391 void gl_context::draw( primitive prim, const render_state& rs, program* p, vertex_array* va, size_t count ) -
trunk/src/gl/gl_device.cc
r170 r171 31 31 } 32 32 33 #if NV_SDL_VERSION == NV_SDL_12 33 34 m_info = SDL_GetVideoInfo( ); 34 35 … … 38 39 return; // TODO: Error report 39 40 } 41 #endif 40 42 41 43 // bpp = m_info->vfmt->BitsPerPixel; … … 49 51 SDL_GL_SetAttribute( SDL_GL_MULTISAMPLEBUFFERS, 1 ); 50 52 SDL_GL_SetAttribute( SDL_GL_MULTISAMPLESAMPLES, 4 ); 53 54 #if NV_SDL_VERSION == NV_SDL_20 55 SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); 56 SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1); 57 SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); 58 SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); 59 #endif 51 60 52 61 } -
trunk/src/gl/gl_window.cc
r170 r171 18 18 kevent.key.code = KEY_NONE; 19 19 20 #if NV_SDL_VERSION == NV_SDL_20 21 uint32 ucode = ke.keysym.sym; 22 #else 23 uint32 ucode = ke.keysym.unicode; 24 #endif 25 20 26 // if result is a typable char place it into the structure 21 if ( ke.keysym.unicode >= 32 && ke.keysym.unicode < 128 )22 { 23 kevent.key.ascii = static_cast<char8>( ke.keysym.unicode );27 if (ucode >= 32 && ucode < 128 ) 28 { 29 kevent.key.ascii = static_cast<char8>( ucode ); 24 30 } 25 31 … … 67 73 case SDLK_DELETE : kevent.key.code = KEY_DELETE; break; 68 74 case SDLK_INSERT : kevent.key.code = KEY_INSERT; break; 69 case SDLK_KP5 : kevent.key.code = KEY_CENTER; break;75 //case SDLK_KP5 : kevent.key.code = KEY_CENTER; break; 70 76 case SDLK_ESCAPE : kevent.key.code = KEY_ESCAPE; break; 71 77 case SDLK_QUOTE : kevent.key.code = KEY_QUOTE; break; … … 91 97 mevent.mbutton.button = MOUSE_NONE; 92 98 mevent.mbutton.pressed = (mb.state != SDL_RELEASED); 93 mevent.mbutton.x = mb.x;94 mevent.mbutton.y = mb.y;99 mevent.mbutton.x = static_cast< uint16 >( mb.x ); 100 mevent.mbutton.y = static_cast< uint16 >( mb.y ); 95 101 96 102 switch ( mb.button ) … … 99 105 case SDL_BUTTON_MIDDLE : mevent.mbutton.button = MOUSE_MIDDLE; break; 100 106 case SDL_BUTTON_RIGHT : mevent.mbutton.button = MOUSE_RIGHT; break; 101 case SDL_BUTTON_WHEELUP : mevent.mbutton.button = MOUSE_WHEEL_UP; break;102 case SDL_BUTTON_WHEELDOWN : mevent.mbutton.button = MOUSE_WHEEL_DOWN; break;107 //case SDL_BUTTON_WHEELUP : mevent.mbutton.button = MOUSE_WHEEL_UP; break; 108 //case SDL_BUTTON_WHEELDOWN : mevent.mbutton.button = MOUSE_WHEEL_DOWN; break; 103 109 default : break; 104 110 } … … 111 117 mevent.type = EV_MOUSE_MOVE; 112 118 mevent.mmove.pressed = (mm.state != SDL_RELEASED); 113 mevent.mmove.x = mm.x;114 mevent.mmove.y = mm.y;119 mevent.mmove.x = static_cast< uint16 >( mm.x ); 120 mevent.mmove.y = static_cast< uint16 >( mm.y ); 115 121 return true; 116 122 } … … 125 131 case SDL_MOUSEBUTTONDOWN : return sdl_mouse_button_to_io_event( e.button, ioevent ); 126 132 case SDL_MOUSEBUTTONUP : return sdl_mouse_button_to_io_event( e.button, ioevent ); 133 /* // SDL 2.0 incompatible 127 134 case SDL_ACTIVEEVENT : 128 135 ioevent.type = EV_ACTIVE; … … 134 141 ioevent.resize.y = e.resize.h; 135 142 return true; 143 case SDL_NOEVENT : return false; 144 case SDL_VIDEOEXPOSE : return false; 145 */ 136 146 case SDL_SYSWMEVENT : ioevent.type = EV_SYSTEM; return true; 137 147 case SDL_QUIT : ioevent.type = EV_QUIT; return true; 138 case SDL_NOEVENT : return false;139 case SDL_VIDEOEXPOSE : return false;140 148 case SDL_JOYAXISMOTION : return false; 141 149 case SDL_JOYBALLMOTION : return false; … … 149 157 150 158 gl_window::gl_window( device* dev, uint16 width, uint16 height ) 151 : m_device( dev ), m_width( width ), m_height( height ), m_title("NV Engine"), m_screen( nullptr ) 152 { 159 : m_device( dev ), m_width( width ), m_height( height ), m_title("NV Engine"), m_handle( nullptr ) 160 { 161 #if NV_SDL_VERSION == NV_SDL_12 153 162 uint32 flags = SDL_OPENGL; 154 155 m_screen = SDL_SetVideoMode( width, height, 32, flags ); 156 157 if ( m_screen == 0 ) 163 m_handle = SDL_SetVideoMode( width, height, 32, flags ); 164 #elif NV_SDL_VERSION == NV_SDL_20 165 uint32 flags = SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN; 166 m_handle = SDL_CreateWindow("Nova Engine", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 167 width, height, flags ); 168 #endif 169 if ( m_handle == 0 ) 158 170 { 159 171 NV_LOG( LOG_CRITICAL, "Video mode set failed: " << SDL_GetError( ) ); … … 161 173 } 162 174 163 nv::load_gl_library(); 164 NV_LOG( LOG_INFO, "OpenGL Vendor : " << glGetString(GL_VENDOR) ); 165 NV_LOG( LOG_INFO, "OpenGL Renderer : " << glGetString(GL_RENDERER) ); 166 NV_LOG( LOG_INFO, "OpenGL Version : " << glGetString(GL_VERSION) ); 167 NV_LOG( LOG_INFO, "OpenGL GLSL Version : " << glGetString(GL_SHADING_LANGUAGE_VERSION) ); 168 169 m_context = new gl_context( m_device ); 175 m_context = new gl_context( m_device, m_handle ); 170 176 m_context->set_viewport( nv::ivec4( 0, 0, m_width, m_height ) ); 171 177 } … … 188 194 void gl_window::set_title( const string& title ) 189 195 { 196 #if NV_SDL_VERSION == NV_SDL_20 197 SDL_SetWindowTitle( static_cast<SDL_Window*>( m_handle ), title.c_str() ); 198 #else 190 199 SDL_WM_SetCaption( title.c_str(), title.c_str() ); 200 #endif 191 201 m_title = title; 192 202 } … … 206 216 void gl_window::swap_buffers() 207 217 { 218 #if NV_SDL_VERSION == NV_SDL_20 219 SDL_GL_SwapWindow( static_cast<SDL_Window*>( m_handle ) ); 220 #else 208 221 SDL_GL_SwapBuffers(); 222 #endif 209 223 } 210 224 … … 212 226 { 213 227 delete m_context; 214 } 228 #if NV_SDL_VERSION == NV_SDL_20 229 SDL_DestroyWindow( static_cast<SDL_Window*>( m_handle ) ); 230 #endif 231 } -
trunk/src/lib/sdl.cc
r170 r171 13 13 #define NV_SDL_FUN( rtype, fname, fparams ) rtype (NV_SDL_APIENTRY *fname) fparams = nullptr; 14 14 #include <nv/lib/detail/sdl_functions.inc> 15 #if NV_SDL_VERSION == NV_SDL_12 16 # include <nv/lib/detail/sdl_functions_12.inc> 17 #elif NV_SDL_VERSION == NV_SDL_20 18 # include <nv/lib/detail/sdl_functions_20.inc> 19 #endif 15 20 #undef NV_SDL_FUN 21 22 16 23 17 24 bool nv::load_sdl_library( const char* path ) … … 22 29 # define NV_SDL_FUN( rtype, fname, fparams ) *(void **) (&fname) = sdl_library.get(#fname); 23 30 # include <nv/lib/detail/sdl_functions.inc> 31 # if NV_SDL_VERSION == NV_SDL_12 32 # include <nv/lib/detail/sdl_functions_12.inc> 33 # elif NV_SDL_VERSION == NV_SDL_20 34 # include <nv/lib/detail/sdl_functions_20.inc> 35 # endif 24 36 # undef NV_SDL_FUN 25 37 return true;
Note: See TracChangeset
for help on using the changeset viewer.