Mercurial > sdl-ios-xcode
view test/testcursor.c @ 1861:b42823412c3b
Fixed bug #232
------- Comment #2 From Matthias Geissert 2006-05-24 07:54 [reply] -------
See http://dri.sourceforge.net/doc/DRIuserguide.html, section 11.5. There is
written that you need to use RTLD_GLOBAL, since, otherwise, nested open of
dynamic libraries doesn't work. However, This is necassary in this case, since
libGL opens the hardware-specific driver/library. I hope this helps you.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 20 Jun 2006 03:52:41 +0000 |
parents | 2fce7697adca |
children | fe99535ac064 |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include "SDL.h" /* This is an example 16x16 cursor top left : black top right : inverted color or black bottom left: white bottom right: transparent (swap left and right for different endianness) */ Uint16 cursor_data[16]={ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; Uint16 cursor_mask[16]={ 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00 }; int main(int argc, char *argv[]) { SDL_Surface *screen; SDL_bool quit = SDL_FALSE, first_time = SDL_TRUE; SDL_Cursor *cursor; SDL_Rect update_area; /* Load the SDL library */ if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError()); return(1); } screen = SDL_SetVideoMode(320,200,8,SDL_ANYFORMAT); if (screen==NULL) { fprintf(stderr, "Couldn't initialize video mode: %s\n",SDL_GetError()); return(1); } update_area.x = update_area.y = 0; update_area.w = screen->w; update_area.h = screen->h; SDL_FillRect(screen, NULL, 0x664422); cursor = SDL_CreateCursor((Uint8 *)cursor_data, (Uint8 *)cursor_mask, 16, 16, 8, 8); if (cursor==NULL) { fprintf(stderr, "Couldn't initialize cursor: %s\n",SDL_GetError()); return(1); } SDL_SetCursor(cursor); while (!quit) { SDL_Event event; while (SDL_PollEvent(&event)) { switch(event.type) { case SDL_KEYDOWN: if (event.key.keysym.sym == SDLK_ESCAPE) { quit = SDL_TRUE; } break; case SDL_QUIT: quit = SDL_TRUE; break; } } if (screen->flags & SDL_DOUBLEBUF) { SDL_Flip(screen); } else { if (first_time) { SDL_UpdateRects(screen, 1, &update_area); first_time = SDL_FALSE; } } SDL_Delay(1); } SDL_FreeCursor(cursor); SDL_Quit(); return(0); }