Mercurial > sdl-ios-xcode
diff src/video/qnxgf/SDL_gf_render.c @ 3109:7b3a09fb9c8b
Support for HID devices (mice and keyboards only for now) has been added
author | Mike Gorchak <lestat@i.com.ua> |
---|---|
date | Tue, 28 Apr 2009 04:33:30 +0000 |
parents | 82e60908fab1 |
children | 7f684f249ec9 |
line wrap: on
line diff
--- a/src/video/qnxgf/SDL_gf_render.c Tue Apr 28 04:30:52 2009 +0000 +++ b/src/video/qnxgf/SDL_gf_render.c Tue Apr 28 04:33:30 2009 +0000 @@ -35,24 +35,24 @@ #include "SDL_qnxgf.h" static SDL_Renderer* gf_createrenderer(SDL_Window* window, Uint32 flags); -static int gf_displaymodechanged(SDL_Renderer* renderer); -static int gf_activaterenderer(SDL_Renderer* renderer); -static int gf_createtexture(SDL_Renderer* renderer, SDL_Texture* texture); -static int gf_querytexturepixels(SDL_Renderer* renderer, SDL_Texture* texture, void** pixels, int* pitch); -static int gf_settexturepalette(SDL_Renderer* renderer, SDL_Texture* texture, const SDL_Color* colors, int firstcolor, int ncolors); -static int gf_gettexturepalette(SDL_Renderer* renderer, SDL_Texture* texture, SDL_Color* colors, int firstcolor, int ncolors); -static int gf_settexturecolormod(SDL_Renderer* renderer, SDL_Texture* texture); -static int gf_settexturealphamod(SDL_Renderer* renderer, SDL_Texture* texture); -static int gf_settextureblendmode(SDL_Renderer* renderer, SDL_Texture* texture); -static int gf_settexturescalemode(SDL_Renderer* renderer, SDL_Texture* texture); -static int gf_updatetexture(SDL_Renderer* renderer, SDL_Texture* texture, const SDL_Rect* rect, const void* pixels, int pitch); -static int gf_locktexture(SDL_Renderer* renderer, SDL_Texture* texture, const SDL_Rect* rect, int markDirty, void** pixels, int* pitch); +static int gf_displaymodechanged(SDL_Renderer* renderer); +static int gf_activaterenderer(SDL_Renderer* renderer); +static int gf_createtexture(SDL_Renderer* renderer, SDL_Texture* texture); +static int gf_querytexturepixels(SDL_Renderer* renderer, SDL_Texture* texture, void** pixels, int* pitch); +static int gf_settexturepalette(SDL_Renderer* renderer, SDL_Texture* texture, const SDL_Color* colors, int firstcolor, int ncolors); +static int gf_gettexturepalette(SDL_Renderer* renderer, SDL_Texture* texture, SDL_Color* colors, int firstcolor, int ncolors); +static int gf_settexturecolormod(SDL_Renderer* renderer, SDL_Texture* texture); +static int gf_settexturealphamod(SDL_Renderer* renderer, SDL_Texture* texture); +static int gf_settextureblendmode(SDL_Renderer* renderer, SDL_Texture* texture); +static int gf_settexturescalemode(SDL_Renderer* renderer, SDL_Texture* texture); +static int gf_updatetexture(SDL_Renderer* renderer, SDL_Texture* texture, const SDL_Rect* rect, const void* pixels, int pitch); +static int gf_locktexture(SDL_Renderer* renderer, SDL_Texture* texture, const SDL_Rect* rect, int markDirty, void** pixels, int* pitch); static void gf_unlocktexture(SDL_Renderer* renderer, SDL_Texture* texture); static void gf_dirtytexture(SDL_Renderer* renderer, SDL_Texture* texture, int numrects, const SDL_Rect* rects); -static int gf_renderpoint(SDL_Renderer* renderer, int x, int y); -static int gf_renderline(SDL_Renderer* renderer, int x1, int y1, int x2, int y2); -static int gf_renderfill(SDL_Renderer* renderer, const SDL_Rect* rect); -static int gf_rendercopy(SDL_Renderer* renderer, SDL_Texture* texture, const SDL_Rect* srcrect, const SDL_Rect* dstrect); +static int gf_renderpoint(SDL_Renderer* renderer, int x, int y); +static int gf_renderline(SDL_Renderer* renderer, int x1, int y1, int x2, int y2); +static int gf_renderfill(SDL_Renderer* renderer, const SDL_Rect* rect); +static int gf_rendercopy(SDL_Renderer* renderer, SDL_Texture* texture, const SDL_Rect* srcrect, const SDL_Rect* dstrect); static void gf_renderpresent(SDL_Renderer* renderer); static void gf_destroytexture(SDL_Renderer* renderer, SDL_Texture* texture); static void gf_destroyrenderer(SDL_Renderer* renderer); @@ -222,7 +222,6 @@ for (it=0; it<rdata->surfaces_count; it++) { /* TODO: add palette creation */ - /* do not waste surfaces when using GL ES */ /* Create displayable surfaces */ status=gf_surface_create_layer(&rdata->surface[it], &didata->layer, 1, 0, @@ -236,6 +235,7 @@ for (jt=it-1; jt>0; jt--) { gf_surface_free(rdata->surface[jt]); + rdata->surface[jt]=NULL; } SDL_free(rdata); SDL_free(renderer); @@ -288,10 +288,10 @@ SDL_DisplayData* didata = (SDL_DisplayData*)display->driverdata; /* Setup current surface as visible */ - gf_layer_set_surfaces(didata->layer, &rdata->surface[rdata->surface_visible_idx], 1); +// gf_layer_set_surfaces(didata->layer, &rdata->surface[rdata->surface_visible_idx], 1); /* Set visible surface when hardware in idle state */ - gf_layer_update(didata->layer, GF_LAYER_UPDATE_NO_WAIT_IDLE); +// gf_layer_update(didata->layer, GF_LAYER_UPDATE_NO_WAIT_IDLE); return 0; } @@ -391,7 +391,10 @@ for (it=0; it<rdata->surfaces_count; it++) { - gf_surface_free(rdata->surface[it]); + if (rdata->surface[it]!=NULL) + { + gf_surface_free(rdata->surface[it]); + } } }