annotate src/video/qnxgf/SDL_gf_render.c @ 5148:2f44e6969a59

Split the rendering API out into a separate header file.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 01 Feb 2011 15:02:21 -0800
parents 31e7f523ab3d
children be02be2ea897
rev   line source
3087
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1 /*
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
3697
f7b03b6838cb Fixed bug #926
Sam Lantinga <slouken@libsdl.org>
parents: 3685
diff changeset
3 Copyright (C) 1997-2010 Sam Lantinga
3087
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
6 modify it under the terms of the GNU Lesser General Public
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
13 Lesser General Public License for more details.
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
15 You should have received a copy of the GNU Lesser General Public
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
16 License along with this library; if not, write to the Free Software
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 Sam Lantinga
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20 slouken@libsdl.org
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
21
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
22 QNX Graphics Framework SDL driver
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
23 Copyright (C) 2009 Mike Gorchak
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
24 (mike@malva.ua, lestat@i.com.ua)
3087
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
25 */
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
26
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
27 #include "SDL_config.h"
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
28
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
29 #include "../SDL_pixels_c.h"
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
30 #include "../SDL_yuv_sw_c.h"
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
31
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
32 #include "SDL_video.h"
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
33
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
34 #include "SDL_gf_render.h"
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
35 #include "SDL_qnxgf.h"
3087
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
36
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
37 static SDL_Renderer *gf_createrenderer(SDL_Window * window, Uint32 flags);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
38 static int gf_displaymodechanged(SDL_Renderer * renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
39 static int gf_activaterenderer(SDL_Renderer * renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
40 static int gf_createtexture(SDL_Renderer * renderer, SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
41 static int gf_querytexturepixels(SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
42 SDL_Texture * texture, void **pixels,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
43 int *pitch);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
44 static int gf_settexturepalette(SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
45 SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
46 const SDL_Color * colors, int firstcolor,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
47 int ncolors);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
48 static int gf_gettexturepalette(SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
49 SDL_Texture * texture, SDL_Color * colors,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
50 int firstcolor, int ncolors);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
51 static int gf_updatetexture(SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
52 const SDL_Rect * rect, const void *pixels,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
53 int pitch);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
54 static int gf_locktexture(SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
55 const SDL_Rect * rect, int markDirty, void **pixels,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
56 int *pitch);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
57 static void gf_unlocktexture(SDL_Renderer * renderer, SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
58 static void gf_dirtytexture(SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
59 int numrects, const SDL_Rect * rects);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
60 static int gf_renderpoint(SDL_Renderer * renderer, int x, int y);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
61 static int gf_renderline(SDL_Renderer * renderer, int x1, int y1, int x2,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
62 int y2);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
63 static int gf_renderfill(SDL_Renderer * renderer, const SDL_Rect * rect);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
64 static int gf_rendercopy(SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
65 const SDL_Rect * srcrect, const SDL_Rect * dstrect);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
66 static void gf_renderpresent(SDL_Renderer * renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
67 static void gf_destroytexture(SDL_Renderer * renderer, SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
68 static void gf_destroyrenderer(SDL_Renderer * renderer);
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
69
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
70 SDL_RenderDriver gf_renderdriver = {
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
71 gf_createrenderer,
3087
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
72 {
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
73 "qnxgf",
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
74 (SDL_RENDERER_SINGLEBUFFER | SDL_RENDERER_PRESENTCOPY |
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
75 SDL_RENDERER_PRESENTFLIP2 | SDL_RENDERER_PRESENTFLIP3 |
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
76 SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_PRESENTDISCARD |
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
77 SDL_RENDERER_ACCELERATED),
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
78 13,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
79 {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
80 SDL_PIXELFORMAT_INDEX8,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
81 SDL_PIXELFORMAT_RGB555,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
82 SDL_PIXELFORMAT_RGB565,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
83 SDL_PIXELFORMAT_RGB888,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
84 SDL_PIXELFORMAT_BGR888,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
85 SDL_PIXELFORMAT_ARGB8888,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
86 SDL_PIXELFORMAT_RGBA8888,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
87 SDL_PIXELFORMAT_ABGR8888,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
88 SDL_PIXELFORMAT_BGRA8888,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
89 SDL_PIXELFORMAT_YV12,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
90 SDL_PIXELFORMAT_YUY2,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
91 SDL_PIXELFORMAT_UYVY,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
92 SDL_PIXELFORMAT_YVYU},
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
93 0,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
94 0}
3087
0b6f51c29267 Date: Wed, 4 Mar 2009 15:38:22 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
95 };
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
96
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
97 static SDL_Renderer *
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
98 gf_createrenderer(SDL_Window * window, Uint32 flags)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
99 {
3685
64ce267332c6 Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents: 3500
diff changeset
100 SDL_VideoDisplay *display = window->display;
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
101 SDL_DisplayData *didata = (SDL_DisplayData *) display->driverdata;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
102 SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
103 SDL_Renderer *renderer = NULL;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
104 SDL_RenderData *rdata = NULL;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
105 uint32_t it;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
106 int32_t jt;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
107 int32_t status;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
108
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
109 /* Check if it is OpenGL ES window */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
110 if ((window->flags & SDL_WINDOW_OPENGL) == SDL_WINDOW_OPENGL) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
111 /* No error, just no need to create 2D renderer for OpenGL ES window */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
112 return NULL;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
113 }
3099
82e60908fab1 Date: Mon, 23 Mar 2009 09:17:24 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3092
diff changeset
114
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
115 /* Allocate new renderer structure */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
116 renderer = (SDL_Renderer *) SDL_calloc(1, sizeof(SDL_Renderer));
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
117 if (renderer == NULL) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
118 SDL_OutOfMemory();
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
119 return NULL;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
120 }
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
121
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
122 /* Allocate renderer data */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
123 rdata = (SDL_RenderData *) SDL_calloc(1, sizeof(SDL_RenderData));
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
124 if (rdata == NULL) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
125 SDL_free(renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
126 SDL_OutOfMemory();
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
127 return NULL;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
128 }
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
129
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
130 renderer->DisplayModeChanged = gf_displaymodechanged;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
131 renderer->ActivateRenderer = gf_activaterenderer;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
132 renderer->CreateTexture = gf_createtexture;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
133 renderer->QueryTexturePixels = gf_querytexturepixels;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
134 renderer->SetTexturePalette = gf_settexturepalette;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
135 renderer->GetTexturePalette = gf_gettexturepalette;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
136 renderer->UpdateTexture = gf_updatetexture;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
137 renderer->LockTexture = gf_locktexture;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
138 renderer->UnlockTexture = gf_unlocktexture;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
139 renderer->DirtyTexture = gf_dirtytexture;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
140 renderer->RenderPoint = gf_renderpoint;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
141 renderer->RenderLine = gf_renderline;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
142 renderer->RenderFill = gf_renderfill;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
143 renderer->RenderCopy = gf_rendercopy;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
144 renderer->RenderPresent = gf_renderpresent;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
145 renderer->DestroyTexture = gf_destroytexture;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
146 renderer->DestroyRenderer = gf_destroyrenderer;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
147 renderer->info = gf_renderdriver.info;
3685
64ce267332c6 Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents: 3500
diff changeset
148 renderer->window = window;
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
149 renderer->driverdata = rdata;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
150
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
151 /* Set render acceleration flag in case it is accelerated */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
152 if ((didata->caps & SDL_GF_ACCELERATED) == SDL_GF_ACCELERATED) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
153 renderer->info.flags = SDL_RENDERER_ACCELERATED;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
154 } else {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
155 renderer->info.flags &= ~(SDL_RENDERER_ACCELERATED);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
156 }
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
157
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
158 rdata->window = window;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
159
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
160 /* Check if upper level requested synchronization on vsync signal */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
161 if ((flags & SDL_RENDERER_PRESENTVSYNC) == SDL_RENDERER_PRESENTVSYNC) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
162 rdata->enable_vsync = SDL_TRUE;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
163 } else {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
164 rdata->enable_vsync = SDL_FALSE;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
165 }
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
166
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
167 /* Check what buffer copy/flip scheme is requested */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
168 rdata->surfaces_count = 0;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
169 if ((flags & SDL_RENDERER_SINGLEBUFFER) == SDL_RENDERER_SINGLEBUFFER) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
170 if ((flags & SDL_RENDERER_PRESENTDISCARD) ==
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
171 SDL_RENDERER_PRESENTDISCARD) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
172 renderer->info.flags |=
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
173 SDL_RENDERER_SINGLEBUFFER | SDL_RENDERER_PRESENTDISCARD;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
174 } else {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
175 renderer->info.flags |=
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
176 SDL_RENDERER_SINGLEBUFFER | SDL_RENDERER_PRESENTCOPY;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
177 }
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
178 rdata->surfaces_count = 1;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
179 rdata->surface_visible_idx = 0;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
180 rdata->surface_render_idx = 0;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
181 } else {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
182 if ((flags & SDL_RENDERER_PRESENTFLIP2) == SDL_RENDERER_PRESENTFLIP2) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
183 renderer->info.flags |= SDL_RENDERER_PRESENTFLIP2;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
184 rdata->surfaces_count = 2;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
185 rdata->surface_visible_idx = 0;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
186 rdata->surface_render_idx = 1;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
187 } else {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
188 if ((flags & SDL_RENDERER_PRESENTFLIP3) ==
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
189 SDL_RENDERER_PRESENTFLIP3) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
190 renderer->info.flags |= SDL_RENDERER_PRESENTFLIP3;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
191 rdata->surfaces_count = 3;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
192 rdata->surface_visible_idx = 0;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
193 rdata->surface_render_idx = 1;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
194 } else {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
195 renderer->info.flags |=
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
196 SDL_RENDERER_SINGLEBUFFER | SDL_RENDERER_PRESENTCOPY;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
197 rdata->surfaces_count = 1;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
198 rdata->surface_visible_idx = 0;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
199 rdata->surface_render_idx = 0;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
200 }
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
201 }
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
202 }
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
203
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
204 /* Create layer surfaces, which could be visible */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
205 for (it = 0; it < rdata->surfaces_count; it++) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
206 /* TODO: add palette creation */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
207
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
208 /* Create displayable surfaces */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
209 status =
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
210 gf_surface_create_layer(&rdata->surface[it], &didata->layer, 1, 0,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
211 didata->current_mode.w,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
212 didata->current_mode.h,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
213 qnxgf_sdl_to_gf_pixelformat(didata->
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
214 current_mode.
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
215 format), NULL,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
216 GF_SURFACE_CREATE_2D_ACCESSIBLE);
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
217
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
218 if (status != GF_ERR_OK) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
219 /* Free already allocated surfaces */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
220 for (jt = it - 1; jt > 0; jt--) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
221 gf_surface_free(rdata->surface[jt]);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
222 rdata->surface[jt] = NULL;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
223 }
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
224 SDL_free(rdata);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
225 SDL_free(renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
226 if (status == GF_ERR_MEM) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
227 SDL_SetError("unsufficient free video memory");
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
228 } else {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
229 SDL_SetError("error during displayable surface creation");
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
230 }
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
231 return NULL;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
232 }
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
233
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
234 /* Get detailed information about allocated surface */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
235 gf_surface_get_info(rdata->surface[it], &rdata->surface_info[it]);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
236 }
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
237
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
238 return renderer;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
239 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
240
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
241 void
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
242 gf_addrenderdriver(_THIS)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
243 {
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
244 uint32_t it;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
245
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
246 for (it = 0; it < _this->num_displays; it++) {
3500
4b594623401b Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents: 3139
diff changeset
247 SDL_AddRenderDriver(&_this->displays[it], &gf_renderdriver);
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
248 }
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
249 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
250
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
251 /****************************************************************************/
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
252 /* SDL render interface */
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
253 /****************************************************************************/
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
254 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
255 gf_displaymodechanged(SDL_Renderer * renderer)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
256 {
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
257 SDL_RenderData *rdata = (SDL_RenderData *) renderer->driverdata;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
258
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
259 /* Remove all allocated surfaces, they are no more valid */
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
260
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
261 /* TODO: Add video mode change detection and new parameters detection */
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
262
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
263 return 0;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
264 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
265
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
266 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
267 gf_activaterenderer(SDL_Renderer * renderer)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
268 {
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
269 SDL_RenderData *rdata = (SDL_RenderData *) renderer->driverdata;
3685
64ce267332c6 Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents: 3500
diff changeset
270 SDL_VideoDisplay *display = rdata->window->display;
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
271 SDL_DisplayData *didata = (SDL_DisplayData *) display->driverdata;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
272
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
273 /* Setup current surface as visible */
3109
7b3a09fb9c8b Support for HID devices (mice and keyboards only for now) has been added
Mike Gorchak <lestat@i.com.ua>
parents: 3099
diff changeset
274 // gf_layer_set_surfaces(didata->layer, &rdata->surface[rdata->surface_visible_idx], 1);
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
275
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
276 /* Set visible surface when hardware in idle state */
3109
7b3a09fb9c8b Support for HID devices (mice and keyboards only for now) has been added
Mike Gorchak <lestat@i.com.ua>
parents: 3099
diff changeset
277 // gf_layer_update(didata->layer, GF_LAYER_UPDATE_NO_WAIT_IDLE);
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
278
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
279 return 0;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
280 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
281
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
282 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
283 gf_createtexture(SDL_Renderer * renderer, SDL_Texture * texture)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
284 {
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
285 SDL_RenderData *renderdata = (SDL_RenderData *) renderer->driverdata;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
286 SDL_Window *window = SDL_GetWindowFromID(renderer->window);
3685
64ce267332c6 Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents: 3500
diff changeset
287 SDL_VideoDisplay *display = window->display;
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
288 SDL_TextureData *tdata = NULL;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
289
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
290 /* Allocate texture driver data */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
291 tdata = (SDL_TextureData *) SDL_calloc(1, sizeof(SDL_TextureData));
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
292 if (tdata == NULL) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
293 SDL_OutOfMemory();
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
294 return -1;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
295 }
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
296
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
297 /* Set texture driver data */
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
298 texture->driverdata = tdata;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
299
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
300 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
301
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
302 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
303 gf_querytexturepixels(SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
304 void **pixels, int *pitch)
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
305 {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
306 }
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
307
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
308 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
309 gf_settexturepalette(SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
310 const SDL_Color * colors, int firstcolor, int ncolors)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
311 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
312 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
313
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
314 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
315 gf_gettexturepalette(SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
316 SDL_Color * colors, int firstcolor, int ncolors)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
317 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
318 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
319
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
320 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
321 gf_updatetexture(SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
322 const SDL_Rect * rect, const void *pixels, int pitch)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
323 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
324 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
325
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
326 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
327 gf_locktexture(SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
328 const SDL_Rect * rect, int markDirty, void **pixels,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
329 int *pitch)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
330 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
331 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
332
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
333 static void
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
334 gf_unlocktexture(SDL_Renderer * renderer, SDL_Texture * texture)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
335 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
336 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
337
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
338 static void
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
339 gf_dirtytexture(SDL_Renderer * renderer, SDL_Texture * texture, int numrects,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
340 const SDL_Rect * rects)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
341 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
342 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
343
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
344 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
345 gf_renderpoint(SDL_Renderer * renderer, int x, int y)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
346 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
347 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
348
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
349 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
350 gf_renderline(SDL_Renderer * renderer, int x1, int y1, int x2, int y2)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
351 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
352 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
353
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
354 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
355 gf_renderfill(SDL_Renderer * renderer, const SDL_Rect * rect)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
356 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
357 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
358
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
359 static int
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
360 gf_rendercopy(SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
361 const SDL_Rect * srcrect, const SDL_Rect * dstrect)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
362 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
363 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
364
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
365 static void
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
366 gf_renderpresent(SDL_Renderer * renderer)
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
367 {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
368 }
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
369
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
370 static void
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
371 gf_destroytexture(SDL_Renderer * renderer, SDL_Texture * texture)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
372 {
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
373 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
374
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
375 static void
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
376 gf_destroyrenderer(SDL_Renderer * renderer)
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
377 {
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
378 SDL_RenderData *rdata = (SDL_RenderData *) renderer->driverdata;
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
379 uint32_t it;
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
380
3139
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
381 for (it = 0; it < rdata->surfaces_count; it++) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
382 if (rdata->surface[it] != NULL) {
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
383 gf_surface_free(rdata->surface[it]);
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
384 }
Sam Lantinga <slouken@libsdl.org>
parents: 3109
diff changeset
385 }
3092
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
386 }
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
387
cad1aefa2ed9 Date: Thu, 12 Mar 2009 15:14:38 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3087
diff changeset
388 /* vi: set ts=4 sw=4 expandtab: */