My Project
Loading...
Searching...
No Matches
SDL_gpu_RendererImpl.h
1#ifndef _GPU_RENDERERIMPL_H__
2#define _GPU_RENDERERIMPL_H__
3
4#include "SDL_gpu.h"
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10// Internal API for managing window mappings
11DECLSPEC void SDLCALL GPU_AddWindowMapping(GPU_Target* target);
12DECLSPEC void SDLCALL GPU_RemoveWindowMapping(Uint32 windowID);
13DECLSPEC void SDLCALL GPU_RemoveWindowMappingByTarget(GPU_Target* target);
14
16typedef struct GPU_RendererImpl
17{
22 GPU_Target* (SDLCALL *Init)(GPU_Renderer* renderer, GPU_RendererID renderer_request, Uint16 w, Uint16 h, GPU_WindowFlagEnum SDL_flags);
23
26 GPU_Target* (SDLCALL *CreateTargetFromWindow)(GPU_Renderer* renderer, Uint32 windowID, GPU_Target* target);
27
29 GPU_bool (SDLCALL *SetActiveTarget)(GPU_Renderer* renderer, GPU_Target* target);
30
32 GPU_Target* (SDLCALL *CreateAliasTarget)(GPU_Renderer* renderer, GPU_Target* target);
33
35 void (SDLCALL *MakeCurrent)(GPU_Renderer* renderer, GPU_Target* target, Uint32 windowID);
36
38 void (SDLCALL *SetAsCurrent)(GPU_Renderer* renderer);
39
41 void (SDLCALL *ResetRendererState)(GPU_Renderer* renderer);
42
44 GPU_bool (SDLCALL *AddDepthBuffer)(GPU_Renderer* renderer, GPU_Target* target);
45
47 GPU_bool (SDLCALL *SetWindowResolution)(GPU_Renderer* renderer, Uint16 w, Uint16 h);
48
50 void (SDLCALL *SetVirtualResolution)(GPU_Renderer* renderer, GPU_Target* target, Uint16 w, Uint16 h);
51
53 void (SDLCALL *UnsetVirtualResolution)(GPU_Renderer* renderer, GPU_Target* target);
54
56 void (SDLCALL *Quit)(GPU_Renderer* renderer);
57
59 GPU_bool (SDLCALL *SetFullscreen)(GPU_Renderer* renderer, GPU_bool enable_fullscreen, GPU_bool use_desktop_resolution);
60
62 GPU_Camera (SDLCALL *SetCamera)(GPU_Renderer* renderer, GPU_Target* target, GPU_Camera* cam);
63
65 GPU_Image* (SDLCALL *CreateImage)(GPU_Renderer* renderer, Uint16 w, Uint16 h, GPU_FormatEnum format);
66
68 GPU_Image* (SDLCALL *CreateImageUsingTexture)(GPU_Renderer* renderer, GPU_TextureHandle handle, GPU_bool take_ownership);
69
71 GPU_Image* (SDLCALL *CreateAliasImage)(GPU_Renderer* renderer, GPU_Image* image);
72
74 GPU_bool (SDLCALL *SaveImage)(GPU_Renderer* renderer, GPU_Image* image, const char* filename, GPU_FileFormatEnum format);
75
77 GPU_Image* (SDLCALL *CopyImage)(GPU_Renderer* renderer, GPU_Image* image);
78
80 void (SDLCALL *UpdateImage)(GPU_Renderer* renderer, GPU_Image* image, const GPU_Rect* image_rect, SDL_Surface* surface, const GPU_Rect* surface_rect);
81
83 void (SDLCALL *UpdateImageBytes)(GPU_Renderer* renderer, GPU_Image* image, const GPU_Rect* image_rect, const unsigned char* bytes, int bytes_per_row);
84
86 GPU_bool (SDLCALL *ReplaceImage)(GPU_Renderer* renderer, GPU_Image* image, SDL_Surface* surface, const GPU_Rect* surface_rect);
87
89 GPU_Image* (SDLCALL *CopyImageFromSurface)(GPU_Renderer* renderer, SDL_Surface* surface, GPU_Rect *surface_rect);
90
92 GPU_Image* (SDLCALL *CopyImageFromTarget)(GPU_Renderer* renderer, GPU_Target* target);
93
95 SDL_Surface* (SDLCALL *CopySurfaceFromTarget)(GPU_Renderer* renderer, GPU_Target* target);
96
98 SDL_Surface* (SDLCALL *CopySurfaceFromImage)(GPU_Renderer* renderer, GPU_Image* image);
99
101 void (SDLCALL *FreeImage)(GPU_Renderer* renderer, GPU_Image* image);
102
104 GPU_Target* (SDLCALL *GetTarget)(GPU_Renderer* renderer, GPU_Image* image);
105
107 void (SDLCALL *FreeTarget)(GPU_Renderer* renderer, GPU_Target* target);
108
110 void (SDLCALL *Blit)(GPU_Renderer* renderer, GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, float x, float y);
111
113 void (SDLCALL *BlitRotate)(GPU_Renderer* renderer, GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, float x, float y, float degrees);
114
116 void (SDLCALL *BlitScale)(GPU_Renderer* renderer, GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, float x, float y, float scaleX, float scaleY);
117
119 void (SDLCALL *BlitTransform)(GPU_Renderer* renderer, GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, float x, float y, float degrees, float scaleX, float scaleY);
120
122 void (SDLCALL *BlitTransformX)(GPU_Renderer* renderer, GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, float x, float y, float pivot_x, float pivot_y, float degrees, float scaleX, float scaleY);
123
125 void (SDLCALL *PrimitiveBatchV)(GPU_Renderer* renderer, GPU_Image* image, GPU_Target* target, GPU_PrimitiveEnum primitive_type, unsigned short num_vertices, void* values, unsigned int num_indices, unsigned short* indices, GPU_BatchFlagEnum flags);
126
128 void (SDLCALL *GenerateMipmaps)(GPU_Renderer* renderer, GPU_Image* image);
129
131 GPU_Rect (SDLCALL *SetClip)(GPU_Renderer* renderer, GPU_Target* target, Sint16 x, Sint16 y, Uint16 w, Uint16 h);
132
134 void (SDLCALL *UnsetClip)(GPU_Renderer* renderer, GPU_Target* target);
135
137 SDL_Color (SDLCALL *GetPixel)(GPU_Renderer* renderer, GPU_Target* target, Sint16 x, Sint16 y);
138
140 void (SDLCALL *SetImageFilter)(GPU_Renderer* renderer, GPU_Image* image, GPU_FilterEnum filter);
141
143 void (SDLCALL *SetWrapMode)(GPU_Renderer* renderer, GPU_Image* image, GPU_WrapEnum wrap_mode_x, GPU_WrapEnum wrap_mode_y);
144
146 GPU_TextureHandle (SDLCALL *GetTextureHandle)(GPU_Renderer* renderer, GPU_Image* image);
147
149 void (SDLCALL *ClearRGBA)(GPU_Renderer* renderer, GPU_Target* target, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
151 void (SDLCALL *FlushBlitBuffer)(GPU_Renderer* renderer);
153 void (SDLCALL *Flip)(GPU_Renderer* renderer, GPU_Target* target);
154
155
157 Uint32 (SDLCALL *CreateShaderProgram)(GPU_Renderer* renderer);
158
160 void (SDLCALL *FreeShaderProgram)(GPU_Renderer* renderer, Uint32 program_object);
161
163 Uint32 (SDLCALL *CompileShader_RW)(GPU_Renderer* renderer, GPU_ShaderEnum shader_type, SDL_RWops* shader_source, GPU_bool free_rwops);
164
166 Uint32 (SDLCALL *CompileShader)(GPU_Renderer* renderer, GPU_ShaderEnum shader_type, const char* shader_source);
167
169 void (SDLCALL *FreeShader)(GPU_Renderer* renderer, Uint32 shader_object);
170
172 void (SDLCALL *AttachShader)(GPU_Renderer* renderer, Uint32 program_object, Uint32 shader_object);
173
175 void (SDLCALL *DetachShader)(GPU_Renderer* renderer, Uint32 program_object, Uint32 shader_object);
176
178 GPU_bool (SDLCALL *LinkShaderProgram)(GPU_Renderer* renderer, Uint32 program_object);
179
181 void (SDLCALL *ActivateShaderProgram)(GPU_Renderer* renderer, Uint32 program_object, GPU_ShaderBlock* block);
182
184 void (SDLCALL *DeactivateShaderProgram)(GPU_Renderer* renderer);
185
187 const char* (SDLCALL *GetShaderMessage)(GPU_Renderer* renderer);
188
190 int (SDLCALL *GetAttributeLocation)(GPU_Renderer* renderer, Uint32 program_object, const char* attrib_name);
191
193 int (SDLCALL *GetUniformLocation)(GPU_Renderer* renderer, Uint32 program_object, const char* uniform_name);
194
196 GPU_ShaderBlock (SDLCALL *LoadShaderBlock)(GPU_Renderer* renderer, Uint32 program_object, const char* position_name, const char* texcoord_name, const char* color_name, const char* modelViewMatrix_name);
197
199 void (SDLCALL *SetShaderBlock)(GPU_Renderer* renderer, GPU_ShaderBlock block);
200
202 void (SDLCALL *SetShaderImage)(GPU_Renderer* renderer, GPU_Image* image, int location, int image_unit);
203
205 void (SDLCALL *GetUniformiv)(GPU_Renderer* renderer, Uint32 program_object, int location, int* values);
206
208 void (SDLCALL *SetUniformi)(GPU_Renderer* renderer, int location, int value);
209
211 void (SDLCALL *SetUniformiv)(GPU_Renderer* renderer, int location, int num_elements_per_value, int num_values, int* values);
212
214 void (SDLCALL *GetUniformuiv)(GPU_Renderer* renderer, Uint32 program_object, int location, unsigned int* values);
215
217 void (SDLCALL *SetUniformui)(GPU_Renderer* renderer, int location, unsigned int value);
218
220 void (SDLCALL *SetUniformuiv)(GPU_Renderer* renderer, int location, int num_elements_per_value, int num_values, unsigned int* values);
221
223 void (SDLCALL *GetUniformfv)(GPU_Renderer* renderer, Uint32 program_object, int location, float* values);
224
226 void (SDLCALL *SetUniformf)(GPU_Renderer* renderer, int location, float value);
227
229 void (SDLCALL *SetUniformfv)(GPU_Renderer* renderer, int location, int num_elements_per_value, int num_values, float* values);
230
232 void (SDLCALL *SetUniformMatrixfv)(GPU_Renderer* renderer, int location, int num_matrices, int num_rows, int num_columns, GPU_bool transpose, float* values);
233
235 void (SDLCALL *SetAttributef)(GPU_Renderer* renderer, int location, float value);
236
238 void (SDLCALL *SetAttributei)(GPU_Renderer* renderer, int location, int value);
239
241 void (SDLCALL *SetAttributeui)(GPU_Renderer* renderer, int location, unsigned int value);
242
244 void (SDLCALL *SetAttributefv)(GPU_Renderer* renderer, int location, int num_elements, float* value);
245
247 void (SDLCALL *SetAttributeiv)(GPU_Renderer* renderer, int location, int num_elements, int* value);
248
250 void (SDLCALL *SetAttributeuiv)(GPU_Renderer* renderer, int location, int num_elements, unsigned int* value);
251
253 void (SDLCALL *SetAttributeSource)(GPU_Renderer* renderer, int num_values, GPU_Attribute source);
254
255
256 // Shapes
257
259 float (SDLCALL *SetLineThickness)(GPU_Renderer* renderer, float thickness);
260
262 float (SDLCALL *GetLineThickness)(GPU_Renderer* renderer);
263
265 void (SDLCALL *Pixel)(GPU_Renderer* renderer, GPU_Target* target, float x, float y, SDL_Color color);
266
268 void (SDLCALL *Line)(GPU_Renderer* renderer, GPU_Target* target, float x1, float y1, float x2, float y2, SDL_Color color);
269
271 void (SDLCALL *Arc)(GPU_Renderer* renderer, GPU_Target* target, float x, float y, float radius, float start_angle, float end_angle, SDL_Color color);
272
274 void (SDLCALL *ArcFilled)(GPU_Renderer* renderer, GPU_Target* target, float x, float y, float radius, float start_angle, float end_angle, SDL_Color color);
275
277 void (SDLCALL *Circle)(GPU_Renderer* renderer, GPU_Target* target, float x, float y, float radius, SDL_Color color);
278
280 void (SDLCALL *CircleFilled)(GPU_Renderer* renderer, GPU_Target* target, float x, float y, float radius, SDL_Color color);
281
283 void (SDLCALL *Ellipse)(GPU_Renderer* renderer, GPU_Target* target, float x, float y, float rx, float ry, float degrees, SDL_Color color);
284
286 void (SDLCALL *EllipseFilled)(GPU_Renderer* renderer, GPU_Target* target, float x, float y, float rx, float ry, float degrees, SDL_Color color);
287
289 void (SDLCALL *Sector)(GPU_Renderer* renderer, GPU_Target* target, float x, float y, float inner_radius, float outer_radius, float start_angle, float end_angle, SDL_Color color);
290
292 void (SDLCALL *SectorFilled)(GPU_Renderer* renderer, GPU_Target* target, float x, float y, float inner_radius, float outer_radius, float start_angle, float end_angle, SDL_Color color);
293
295 void (SDLCALL *Tri)(GPU_Renderer* renderer, GPU_Target* target, float x1, float y1, float x2, float y2, float x3, float y3, SDL_Color color);
296
298 void (SDLCALL *TriFilled)(GPU_Renderer* renderer, GPU_Target* target, float x1, float y1, float x2, float y2, float x3, float y3, SDL_Color color);
299
301 void (SDLCALL *Rectangle)(GPU_Renderer* renderer, GPU_Target* target, float x1, float y1, float x2, float y2, SDL_Color color);
302
304 void (SDLCALL *RectangleFilled)(GPU_Renderer* renderer, GPU_Target* target, float x1, float y1, float x2, float y2, SDL_Color color);
305
307 void (SDLCALL *RectangleRound)(GPU_Renderer* renderer, GPU_Target* target, float x1, float y1, float x2, float y2, float radius, SDL_Color color);
308
310 void (SDLCALL *RectangleRoundFilled)(GPU_Renderer* renderer, GPU_Target* target, float x1, float y1, float x2, float y2, float radius, SDL_Color color);
311
313 void (SDLCALL *Polygon)(GPU_Renderer* renderer, GPU_Target* target, unsigned int num_vertices, float* vertices, SDL_Color color);
314
316 void (SDLCALL *Polyline)(GPU_Renderer* renderer, GPU_Target* target, unsigned int num_vertices, float* vertices, SDL_Color color, GPU_bool close_loop);
317
319 void (SDLCALL *PolygonFilled)(GPU_Renderer* renderer, GPU_Target* target, unsigned int num_vertices, float* vertices, SDL_Color color);
320
322
323#ifdef __cplusplus
324}
325#endif
326
327#endif
GPU_FormatEnum
Definition: SDL_gpu.h:293
GPU_FilterEnum
Definition: SDL_gpu.h:260
GPU_WrapEnum
Definition: SDL_gpu.h:283
uintptr_t GPU_TextureHandle
Definition: SDL_gpu.h:370
GPU_FileFormatEnum
Definition: SDL_gpu.h:314
Uint32 GPU_PrimitiveEnum
Definition: SDL_gpu.h:588
GPU_ShaderEnum
Definition: SDL_gpu.h:664
Definition: SDL_gpu.h:700
Definition: SDL_gpu.h:380
Definition: SDL_gpu.h:334
Definition: SDL_gpu.h:138
Definition: SDL_gpu.h:168
Definition: SDL_gpu_RendererImpl.h:17
void(SDLCALL *BlitScale)(GPU_Renderer *renderer
void(SDLCALL *Tri)(GPU_Renderer *renderer
int(SDLCALL *GetUniformLocation)(GPU_Renderer *renderer
void(SDLCALL *FreeShaderProgram)(GPU_Renderer *renderer
void(SDLCALL *SetUniformfv)(GPU_Renderer *renderer
void(SDLCALL *UpdateImageBytes)(GPU_Renderer *renderer
void(SDLCALL *SetAttributeuiv)(GPU_Renderer *renderer
GPU_Target *SDLCALL * Init(GPU_Renderer *renderer, GPU_RendererID renderer_request, Uint16 w, Uint16 h, GPU_WindowFlagEnum SDL_flags)
void(SDLCALL *GetUniformuiv)(GPU_Renderer *renderer
GPU_bool(SDLCALL *SetActiveTarget)(GPU_Renderer *renderer
void(SDLCALL *SetAttributeui)(GPU_Renderer *renderer
void(SDLCALL *PrimitiveBatchV)(GPU_Renderer *renderer
void(SDLCALL *RectangleRound)(GPU_Renderer *renderer
Uint32(SDLCALL *CreateShaderProgram)(GPU_Renderer *renderer)
void(SDLCALL *SetAsCurrent)(GPU_Renderer *renderer)
void(SDLCALL *Ellipse)(GPU_Renderer *renderer
void(SDLCALL *Pixel)(GPU_Renderer *renderer
void(SDLCALL *SetAttributef)(GPU_Renderer *renderer
GPU_bool(SDLCALL *SetFullscreen)(GPU_Renderer *renderer
void(SDLCALL *BlitTransformX)(GPU_Renderer *renderer
GPU_Camera(SDLCALL *SetCamera)(GPU_Renderer *renderer
GPU_Image *SDLCALL * CopyImageFromSurface(GPU_Renderer *renderer, SDL_Surface *surface, GPU_Rect *surface_rect)
void(SDLCALL *SetUniformui)(GPU_Renderer *renderer
SDL_Color(SDLCALL *GetPixel)(GPU_Renderer *renderer
int(SDLCALL *GetAttributeLocation)(GPU_Renderer *renderer
GPU_Image *SDLCALL * CreateAliasImage(GPU_Renderer *renderer, GPU_Image *image)
GPU_Image *SDLCALL * CreateImageUsingTexture(GPU_Renderer *renderer, GPU_TextureHandle handle, GPU_bool take_ownership)
void(SDLCALL *Line)(GPU_Renderer *renderer
Uint32(SDLCALL *CompileShader_RW)(GPU_Renderer *renderer
void(SDLCALL *SetUniformi)(GPU_Renderer *renderer
GPU_bool(SDLCALL *SetWindowResolution)(GPU_Renderer *renderer
void(SDLCALL *GetUniformiv)(GPU_Renderer *renderer
void(SDLCALL *UnsetClip)(GPU_Renderer *renderer
void(SDLCALL *SetUniformf)(GPU_Renderer *renderer
void(SDLCALL *Rectangle)(GPU_Renderer *renderer
void(SDLCALL *GetUniformfv)(GPU_Renderer *renderer
void(SDLCALL *FlushBlitBuffer)(GPU_Renderer *renderer)
const char *SDLCALL * GetShaderMessage(GPU_Renderer *renderer)
void(SDLCALL *SetVirtualResolution)(GPU_Renderer *renderer
float(SDLCALL *SetLineThickness)(GPU_Renderer *renderer
void(SDLCALL *ActivateShaderProgram)(GPU_Renderer *renderer
void(SDLCALL *EllipseFilled)(GPU_Renderer *renderer
void(SDLCALL *GenerateMipmaps)(GPU_Renderer *renderer
void(SDLCALL *SetUniformiv)(GPU_Renderer *renderer
void(SDLCALL *Sector)(GPU_Renderer *renderer
void(SDLCALL *UpdateImage)(GPU_Renderer *renderer
void(SDLCALL *Blit)(GPU_Renderer *renderer
void(SDLCALL *Quit)(GPU_Renderer *renderer)
void(SDLCALL *SetWrapMode)(GPU_Renderer *renderer
void(SDLCALL *ArcFilled)(GPU_Renderer *renderer
void(SDLCALL *ResetRendererState)(GPU_Renderer *renderer)
SDL_Surface *SDLCALL * CopySurfaceFromTarget(GPU_Renderer *renderer, GPU_Target *target)
void(SDLCALL *Polyline)(GPU_Renderer *renderer
void(SDLCALL *SetUniformMatrixfv)(GPU_Renderer *renderer
void(SDLCALL *TriFilled)(GPU_Renderer *renderer
void(SDLCALL *SetImageFilter)(GPU_Renderer *renderer
void(SDLCALL *Circle)(GPU_Renderer *renderer
void(SDLCALL *PolygonFilled)(GPU_Renderer *renderer
void(SDLCALL *SetAttributefv)(GPU_Renderer *renderer
void(SDLCALL *SetShaderBlock)(GPU_Renderer *renderer
GPU_bool(SDLCALL *AddDepthBuffer)(GPU_Renderer *renderer
void(SDLCALL *DeactivateShaderProgram)(GPU_Renderer *renderer)
void(SDLCALL *FreeImage)(GPU_Renderer *renderer
GPU_Image *SDLCALL * CreateImage(GPU_Renderer *renderer, Uint16 w, Uint16 h, GPU_FormatEnum format)
GPU_bool(SDLCALL *ReplaceImage)(GPU_Renderer *renderer
GPU_Target *SDLCALL * CreateTargetFromWindow(GPU_Renderer *renderer, Uint32 windowID, GPU_Target *target)
void(SDLCALL *BlitRotate)(GPU_Renderer *renderer
void(SDLCALL *FreeTarget)(GPU_Renderer *renderer
GPU_Image *SDLCALL * CopyImage(GPU_Renderer *renderer, GPU_Image *image)
void(SDLCALL *SetAttributeiv)(GPU_Renderer *renderer
void(SDLCALL *RectangleFilled)(GPU_Renderer *renderer
void(SDLCALL *RectangleRoundFilled)(GPU_Renderer *renderer
SDL_Surface *SDLCALL * CopySurfaceFromImage(GPU_Renderer *renderer, GPU_Image *image)
GPU_bool(SDLCALL *SaveImage)(GPU_Renderer *renderer
void(SDLCALL *FreeShader)(GPU_Renderer *renderer
void(SDLCALL *SetAttributei)(GPU_Renderer *renderer
void(SDLCALL *SetUniformuiv)(GPU_Renderer *renderer
void(SDLCALL *BlitTransform)(GPU_Renderer *renderer
GPU_Target *SDLCALL * CreateAliasTarget(GPU_Renderer *renderer, GPU_Target *target)
GPU_bool(SDLCALL *LinkShaderProgram)(GPU_Renderer *renderer
void(SDLCALL *CircleFilled)(GPU_Renderer *renderer
Uint32(SDLCALL *CompileShader)(GPU_Renderer *renderer
void(SDLCALL *DetachShader)(GPU_Renderer *renderer
void(SDLCALL *Flip)(GPU_Renderer *renderer
float(SDLCALL *GetLineThickness)(GPU_Renderer *renderer)
void(SDLCALL *UnsetVirtualResolution)(GPU_Renderer *renderer
GPU_Rect(SDLCALL *SetClip)(GPU_Renderer *renderer
GPU_Target *SDLCALL * GetTarget(GPU_Renderer *renderer, GPU_Image *image)
GPU_TextureHandle(SDLCALL *GetTextureHandle)(GPU_Renderer *renderer
void(SDLCALL *AttachShader)(GPU_Renderer *renderer
void(SDLCALL *SetAttributeSource)(GPU_Renderer *renderer
void(SDLCALL *SectorFilled)(GPU_Renderer *renderer
GPU_ShaderBlock(SDLCALL *LoadShaderBlock)(GPU_Renderer *renderer
void(SDLCALL *ClearRGBA)(GPU_Renderer *renderer
void(SDLCALL *MakeCurrent)(GPU_Renderer *renderer
void(SDLCALL *Arc)(GPU_Renderer *renderer
void(SDLCALL *Polygon)(GPU_Renderer *renderer
GPU_Image *SDLCALL * CopyImageFromTarget(GPU_Renderer *renderer, GPU_Target *target)
void(SDLCALL *SetShaderImage)(GPU_Renderer *renderer
Definition: SDL_gpu.h:782
Definition: SDL_gpu.h:397
Definition: SDL_gpu.h:493