Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Latest commit

 

History

History
179 lines (147 loc) · 5.99 KB

SDL_sysrender.h

File metadata and controls

179 lines (147 loc) · 5.99 KB
 
Jun 22, 2011
Jun 22, 2011
1
2
/*
Simple DirectMedia Layer
Dec 31, 2011
Dec 31, 2011
3
Copyright (C) 1997-2012 Sam Lantinga <slouken@libsdl.org>
Jun 22, 2011
Jun 22, 2011
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "SDL_config.h"
#ifndef _SDL_sysrender_h
#define _SDL_sysrender_h
#include "SDL_render.h"
#include "SDL_events.h"
#include "SDL_yuv_sw_c.h"
/* The SDL 2D rendering system */
typedef struct SDL_RenderDriver SDL_RenderDriver;
Oct 2, 2012
Oct 2, 2012
34
35
36
37
38
39
40
41
42
43
44
45
46
47
typedef struct
{
float x;
float y;
} SDL_FPoint;
typedef struct
{
float x;
float y;
float w;
float h;
} SDL_FRect;
Jun 22, 2011
Jun 22, 2011
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/* Define the SDL texture structure */
struct SDL_Texture
{
const void *magic;
Uint32 format; /**< The pixel format of the texture */
int access; /**< SDL_TextureAccess */
int w; /**< The width of the texture */
int h; /**< The height of the texture */
int modMode; /**< The texture modulation mode */
SDL_BlendMode blendMode; /**< The texture blend mode */
Uint8 r, g, b, a; /**< Texture modulation values */
SDL_Renderer *renderer;
/* Support for formats not supported directly by the renderer */
SDL_Texture *native;
SDL_SW_YUVTexture *yuv;
void *pixels;
int pitch;
SDL_Rect locked_rect;
void *driverdata; /**< Driver specific texture representation */
SDL_Texture *prev;
SDL_Texture *next;
};
/* Define the SDL renderer structure */
struct SDL_Renderer
{
const void *magic;
void (*WindowEvent) (SDL_Renderer * renderer, const SDL_WindowEvent *event);
int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
int (*SetTextureColorMod) (SDL_Renderer * renderer,
SDL_Texture * texture);
int (*SetTextureAlphaMod) (SDL_Renderer * renderer,
SDL_Texture * texture);
int (*SetTextureBlendMode) (SDL_Renderer * renderer,
SDL_Texture * texture);
int (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
const SDL_Rect * rect, const void *pixels,
int pitch);
int (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
const SDL_Rect * rect, void **pixels, int *pitch);
void (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
Jan 22, 2012
Jan 22, 2012
94
int (*SetRenderTarget) (SDL_Renderer * renderer, SDL_Texture * texture);
Jun 22, 2011
Jun 22, 2011
95
96
int (*UpdateViewport) (SDL_Renderer * renderer);
int (*RenderClear) (SDL_Renderer * renderer);
Oct 2, 2012
Oct 2, 2012
97
int (*RenderDrawPoints) (SDL_Renderer * renderer, const SDL_FPoint * points,
Jun 22, 2011
Jun 22, 2011
98
int count);
Oct 2, 2012
Oct 2, 2012
99
int (*RenderDrawLines) (SDL_Renderer * renderer, const SDL_FPoint * points,
Jun 22, 2011
Jun 22, 2011
100
int count);
Oct 2, 2012
Oct 2, 2012
101
int (*RenderFillRects) (SDL_Renderer * renderer, const SDL_FRect * rects,
Jun 22, 2011
Jun 22, 2011
102
103
int count);
int (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture,
Oct 2, 2012
Oct 2, 2012
104
const SDL_Rect * srcrect, const SDL_FRect * dstrect);
Jun 1, 2012
Jun 1, 2012
105
int (*RenderCopyEx) (SDL_Renderer * renderer, SDL_Texture * texture,
Oct 2, 2012
Oct 2, 2012
106
107
const SDL_Rect * srcquad, const SDL_FRect * dstrect,
const double angle, const SDL_FPoint *center, const SDL_RendererFlip flip);
Jun 22, 2011
Jun 22, 2011
108
109
110
111
112
113
114
int (*RenderReadPixels) (SDL_Renderer * renderer, const SDL_Rect * rect,
Uint32 format, void * pixels, int pitch);
void (*RenderPresent) (SDL_Renderer * renderer);
void (*DestroyTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
void (*DestroyRenderer) (SDL_Renderer * renderer);
Sep 3, 2012
Sep 3, 2012
115
116
117
int (*GL_BindTexture) (SDL_Renderer * renderer, SDL_Texture *texture, float *texw, float *texh);
int (*GL_UnbindTexture) (SDL_Renderer * renderer, SDL_Texture *texture);
Jun 22, 2011
Jun 22, 2011
118
119
120
121
122
/* The current renderer info */
SDL_RendererInfo info;
/* The window associated with the renderer */
SDL_Window *window;
Jan 23, 2012
Jan 23, 2012
123
124
SDL_bool hidden;
SDL_bool resized;
Jun 22, 2011
Jun 22, 2011
125
126
127
/* The drawable area within the window */
SDL_Rect viewport;
Jan 22, 2012
Jan 22, 2012
128
SDL_Rect viewport_backup;
Jun 22, 2011
Jun 22, 2011
129
Oct 2, 2012
Oct 2, 2012
130
131
132
133
/* The render output coordinate scale */
SDL_FPoint scale;
SDL_FPoint scale_backup;
Jun 22, 2011
Jun 22, 2011
134
135
/* The list of textures */
SDL_Texture *textures;
Jan 22, 2012
Jan 22, 2012
136
SDL_Texture *target;
Jun 22, 2011
Jun 22, 2011
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
Uint8 r, g, b, a; /**< Color for drawing operations values */
SDL_BlendMode blendMode; /**< The drawing blend mode */
void *driverdata;
};
/* Define the SDL render driver structure */
struct SDL_RenderDriver
{
SDL_Renderer *(*CreateRenderer) (SDL_Window * window, Uint32 flags);
/* Info about the renderer capabilities */
SDL_RendererInfo info;
};
#if !SDL_RENDER_DISABLED
#if SDL_VIDEO_RENDER_D3D
extern SDL_RenderDriver D3D_RenderDriver;
#endif
#if SDL_VIDEO_RENDER_OGL
extern SDL_RenderDriver GL_RenderDriver;
#endif
#if SDL_VIDEO_RENDER_OGL_ES2
extern SDL_RenderDriver GLES2_RenderDriver;
#endif
#if SDL_VIDEO_RENDER_OGL_ES
extern SDL_RenderDriver GLES_RenderDriver;
#endif
#if SDL_VIDEO_RENDER_DIRECTFB
extern SDL_RenderDriver DirectFB_RenderDriver;
#endif
#if SDL_VIDEO_RENDER_NDS
extern SDL_RenderDriver NDS_RenderDriver;
#endif
extern SDL_RenderDriver SW_RenderDriver;
#endif /* !SDL_RENDER_DISABLED */
#endif /* _SDL_sysrender_h */
/* vi: set ts=4 sw=4 expandtab: */