this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Made sure that the GLES 3 file line endings are clean.

+221 -221
+153 -153
include/SDL_gpu_GLES_3.h
··· 1 - #ifndef _SDL_GPU_GLES_3_H__ 2 - #define _SDL_GPU_GLES_3_H__ 3 - 4 - #include "SDL_gpu.h" 5 - #include "SDL_platform.h" 6 - 7 - #if !defined(SDL_GPU_DISABLE_GLES) && !defined(SDL_GPU_DISABLE_GLES_3) 8 - 9 - #ifdef __IPHONEOS__ 10 - #include <OpenGLES/ES3/gl.h> 11 - #include <OpenGLES/ES3/glext.h> 12 - #else 13 - #include "GLES3/gl3.h" 14 - #include "GLES3/gl3ext.h" 15 - #endif 16 - 17 - #define glVertexAttribI1i glVertexAttrib1f 18 - #define glVertexAttribI2i glVertexAttrib2f 19 - #define glVertexAttribI3i glVertexAttrib3f 20 - #define glVertexAttribI1ui glVertexAttrib1f 21 - #define glVertexAttribI2ui glVertexAttrib2f 22 - #define glVertexAttribI3ui glVertexAttrib3f 23 - #define glMapBuffer glMapBufferOES 24 - #define glUnmapBuffer glUnmapBufferOES 25 - #define GL_WRITE_ONLY GL_WRITE_ONLY_OES 26 - #endif 27 - 28 - 29 - 30 - #define GPU_CONTEXT_DATA ContextData_GLES_3 31 - #define GPU_IMAGE_DATA ImageData_GLES_3 32 - #define GPU_TARGET_DATA TargetData_GLES_3 33 - 34 - 35 - #define GPU_DEFAULT_TEXTURED_VERTEX_SHADER_SOURCE \ 36 - "#version 300 es\n\ 37 - precision mediump float;\n\ 38 - precision mediump int;\n\ 39 - \ 40 - in vec2 gpu_Vertex;\n\ 41 - in vec2 gpu_TexCoord;\n\ 42 - in vec4 gpu_Color;\n\ 43 - uniform mat4 gpu_ModelViewProjectionMatrix;\n\ 44 - \ 45 - out vec4 color;\n\ 46 - out vec2 texCoord;\n\ 47 - \ 48 - void main(void)\n\ 49 - {\n\ 50 - color = gpu_Color;\n\ 51 - texCoord = vec2(gpu_TexCoord);\n\ 52 - gl_Position = gpu_ModelViewProjectionMatrix * vec4(gpu_Vertex, 0.0, 1.0);\n\ 53 - }" 54 - 55 - // Tier 3 uses shader attributes to send position, texcoord, and color data for each vertex. 56 - #define GPU_DEFAULT_UNTEXTURED_VERTEX_SHADER_SOURCE \ 57 - "#version 300 es\n\ 58 - precision mediump float;\n\ 59 - precision mediump int;\n\ 60 - \ 61 - in vec2 gpu_Vertex;\n\ 62 - in vec4 gpu_Color;\n\ 63 - uniform mat4 gpu_ModelViewProjectionMatrix;\n\ 64 - \ 65 - out vec4 color;\n\ 66 - \ 67 - void main(void)\n\ 68 - {\n\ 69 - color = gpu_Color;\n\ 70 - gl_Position = gpu_ModelViewProjectionMatrix * vec4(gpu_Vertex, 0.0, 1.0);\n\ 71 - }" 72 - 73 - 74 - #define GPU_DEFAULT_TEXTURED_FRAGMENT_SHADER_SOURCE \ 75 - "#version 300 es\n\ 76 - precision mediump float;\n\ 77 - precision mediump int;\n\ 78 - \ 79 - in vec4 color;\n\ 80 - in vec2 texCoord;\n\ 81 - \ 1 + #ifndef _SDL_GPU_GLES_3_H__ 2 + #define _SDL_GPU_GLES_3_H__ 3 + 4 + #include "SDL_gpu.h" 5 + #include "SDL_platform.h" 6 + 7 + #if !defined(SDL_GPU_DISABLE_GLES) && !defined(SDL_GPU_DISABLE_GLES_3) 8 + 9 + #ifdef __IPHONEOS__ 10 + #include <OpenGLES/ES3/gl.h> 11 + #include <OpenGLES/ES3/glext.h> 12 + #else 13 + #include "GLES3/gl3.h" 14 + #include "GLES3/gl3ext.h" 15 + #endif 16 + 17 + #define glVertexAttribI1i glVertexAttrib1f 18 + #define glVertexAttribI2i glVertexAttrib2f 19 + #define glVertexAttribI3i glVertexAttrib3f 20 + #define glVertexAttribI1ui glVertexAttrib1f 21 + #define glVertexAttribI2ui glVertexAttrib2f 22 + #define glVertexAttribI3ui glVertexAttrib3f 23 + #define glMapBuffer glMapBufferOES 24 + #define glUnmapBuffer glUnmapBufferOES 25 + #define GL_WRITE_ONLY GL_WRITE_ONLY_OES 26 + #endif 27 + 28 + 29 + 30 + #define GPU_CONTEXT_DATA ContextData_GLES_3 31 + #define GPU_IMAGE_DATA ImageData_GLES_3 32 + #define GPU_TARGET_DATA TargetData_GLES_3 33 + 34 + 35 + #define GPU_DEFAULT_TEXTURED_VERTEX_SHADER_SOURCE \ 36 + "#version 300 es\n\ 37 + precision mediump float;\n\ 38 + precision mediump int;\n\ 39 + \ 40 + in vec2 gpu_Vertex;\n\ 41 + in vec2 gpu_TexCoord;\n\ 42 + in vec4 gpu_Color;\n\ 43 + uniform mat4 gpu_ModelViewProjectionMatrix;\n\ 44 + \ 45 + out vec4 color;\n\ 46 + out vec2 texCoord;\n\ 47 + \ 48 + void main(void)\n\ 49 + {\n\ 50 + color = gpu_Color;\n\ 51 + texCoord = vec2(gpu_TexCoord);\n\ 52 + gl_Position = gpu_ModelViewProjectionMatrix * vec4(gpu_Vertex, 0.0, 1.0);\n\ 53 + }" 54 + 55 + // Tier 3 uses shader attributes to send position, texcoord, and color data for each vertex. 56 + #define GPU_DEFAULT_UNTEXTURED_VERTEX_SHADER_SOURCE \ 57 + "#version 300 es\n\ 58 + precision mediump float;\n\ 59 + precision mediump int;\n\ 60 + \ 61 + in vec2 gpu_Vertex;\n\ 62 + in vec4 gpu_Color;\n\ 63 + uniform mat4 gpu_ModelViewProjectionMatrix;\n\ 64 + \ 65 + out vec4 color;\n\ 66 + \ 67 + void main(void)\n\ 68 + {\n\ 69 + color = gpu_Color;\n\ 70 + gl_Position = gpu_ModelViewProjectionMatrix * vec4(gpu_Vertex, 0.0, 1.0);\n\ 71 + }" 72 + 73 + 74 + #define GPU_DEFAULT_TEXTURED_FRAGMENT_SHADER_SOURCE \ 75 + "#version 300 es\n\ 76 + precision mediump float;\n\ 77 + precision mediump int;\n\ 78 + \ 79 + in vec4 color;\n\ 80 + in vec2 texCoord;\n\ 81 + \ 82 82 uniform sampler2D tex;\n\ 83 83 \ 84 - out vec4 fragColor;\n\ 85 - \ 86 - void main(void)\n\ 87 - {\n\ 88 - fragColor = texture(tex, texCoord) * color;\n\ 89 - }" 90 - 91 - #define GPU_DEFAULT_UNTEXTURED_FRAGMENT_SHADER_SOURCE \ 92 - "#version 300 es\n\ 93 - precision mediump float;\n\ 94 - precision mediump int;\n\ 95 - \ 84 + out vec4 fragColor;\n\ 85 + \ 86 + void main(void)\n\ 87 + {\n\ 88 + fragColor = texture(tex, texCoord) * color;\n\ 89 + }" 90 + 91 + #define GPU_DEFAULT_UNTEXTURED_FRAGMENT_SHADER_SOURCE \ 92 + "#version 300 es\n\ 93 + precision mediump float;\n\ 94 + precision mediump int;\n\ 95 + \ 96 96 in vec4 color;\n\ 97 97 \ 98 - out vec4 fragColor;\n\ 99 - \ 100 - void main(void)\n\ 101 - {\n\ 102 - fragColor = color;\n\ 103 - }" 104 - 105 - 106 - 107 - 108 - typedef struct ContextData_GLES_3 109 - { 110 - SDL_Color last_color; 111 - Uint8 last_use_texturing; 112 - unsigned int last_shape; 113 - Uint8 last_use_blending; 114 - GPU_BlendMode last_blend_mode; 115 - GPU_Rect last_viewport; 116 - GPU_Camera last_camera; 117 - Uint8 last_camera_inverted; 118 - 119 - GPU_Image* last_image; 120 - GPU_Target* last_target; 121 - float* blit_buffer; // Holds sets of 4 vertices, each with interleaved position, tex coords, and colors (e.g. [x0, y0, z0, s0, t0, r0, g0, b0, a0, ...]). 122 - unsigned short blit_buffer_num_vertices; 123 - unsigned short blit_buffer_max_num_vertices; 124 - unsigned short* index_buffer; // Indexes into the blit buffer so we can use 4 vertices for every 2 triangles (1 quad) 125 - unsigned int index_buffer_num_vertices; 126 - unsigned int index_buffer_max_num_vertices; 127 - 128 - // Tier 3 rendering 129 - unsigned int blit_VAO; 130 - unsigned int blit_VBO[2]; // For double-buffering 131 - unsigned int blit_IBO; 132 - Uint8 blit_VBO_flop; 133 - GPU_ShaderBlock shader_block[2]; 134 - GPU_ShaderBlock current_shader_block; 135 - 136 - GPU_AttributeSource shader_attributes[16]; 137 - unsigned int attribute_VBO[16]; 138 - } ContextData_GLES_3; 139 - 140 - typedef struct ImageData_GLES_3 141 - { 142 - int refcount; 143 - Uint8 owns_handle; 144 - Uint32 handle; 145 - Uint32 format; 146 - } ImageData_GLES_3; 147 - 148 - typedef struct TargetData_GLES_3 149 - { 150 - int refcount; 151 - Uint32 handle; 152 - Uint32 format; 153 - } TargetData_GLES_3; 154 - 155 - 156 - 157 - #endif 98 + out vec4 fragColor;\n\ 99 + \ 100 + void main(void)\n\ 101 + {\n\ 102 + fragColor = color;\n\ 103 + }" 104 + 105 + 106 + 107 + 108 + typedef struct ContextData_GLES_3 109 + { 110 + SDL_Color last_color; 111 + Uint8 last_use_texturing; 112 + unsigned int last_shape; 113 + Uint8 last_use_blending; 114 + GPU_BlendMode last_blend_mode; 115 + GPU_Rect last_viewport; 116 + GPU_Camera last_camera; 117 + Uint8 last_camera_inverted; 118 + 119 + GPU_Image* last_image; 120 + GPU_Target* last_target; 121 + float* blit_buffer; // Holds sets of 4 vertices, each with interleaved position, tex coords, and colors (e.g. [x0, y0, z0, s0, t0, r0, g0, b0, a0, ...]). 122 + unsigned short blit_buffer_num_vertices; 123 + unsigned short blit_buffer_max_num_vertices; 124 + unsigned short* index_buffer; // Indexes into the blit buffer so we can use 4 vertices for every 2 triangles (1 quad) 125 + unsigned int index_buffer_num_vertices; 126 + unsigned int index_buffer_max_num_vertices; 127 + 128 + // Tier 3 rendering 129 + unsigned int blit_VAO; 130 + unsigned int blit_VBO[2]; // For double-buffering 131 + unsigned int blit_IBO; 132 + Uint8 blit_VBO_flop; 133 + GPU_ShaderBlock shader_block[2]; 134 + GPU_ShaderBlock current_shader_block; 135 + 136 + GPU_AttributeSource shader_attributes[16]; 137 + unsigned int attribute_VBO[16]; 138 + } ContextData_GLES_3; 139 + 140 + typedef struct ImageData_GLES_3 141 + { 142 + int refcount; 143 + Uint8 owns_handle; 144 + Uint32 handle; 145 + Uint32 format; 146 + } ImageData_GLES_3; 147 + 148 + typedef struct TargetData_GLES_3 149 + { 150 + int refcount; 151 + Uint32 handle; 152 + Uint32 format; 153 + } TargetData_GLES_3; 154 + 155 + 156 + 157 + #endif
+68 -68
src/renderer_GLES_3.c
··· 1 - #include "SDL_gpu_GLES_3.h" 2 - #include "SDL_gpu_RendererImpl.h" 3 - 4 - 5 - #if defined(SDL_GPU_DISABLE_GLES) || defined(SDL_GPU_DISABLE_GLES_3) 6 - 7 - // Dummy implementations 8 - GPU_Renderer* GPU_CreateRenderer_GLES_3(GPU_RendererID request) {return NULL;} 9 - void GPU_FreeRenderer_GLES_3(GPU_Renderer* renderer) {} 10 - 11 - #else 12 - 13 - 14 - // Most of the code pulled in from here... 15 - #define SDL_GPU_USE_GLES 16 - #define SDL_GPU_GL_TIER 3 17 - #define SDL_GPU_GLES_MAJOR_VERSION 3 18 - #define SDL_GPU_GLSL_VERSION 300 19 - 20 - #define SDL_GPU_USE_BUFFER_PIPELINE 21 - #ifdef __IPHONEOS__ 22 - #define SDL_GPU_USE_BUFFER_RESET 23 - #endif 24 - #define SDL_GPU_SKIP_ENABLE_TEXTURE_2D 25 - #define SDL_GPU_ASSUME_SHADERS 26 - // TODO: Make this dynamic because GLES 3.1 supports it 27 - #define SDL_GPU_DISABLE_TEXTURE_GETS 28 - 29 - #include "renderer_GL_common.inl" 30 - #include "renderer_shapes_GL_common.inl" 31 - 32 - 33 - GPU_Renderer* GPU_CreateRenderer_GLES_3(GPU_RendererID request) 34 - { 35 - GPU_Renderer* renderer = (GPU_Renderer*)SDL_malloc(sizeof(GPU_Renderer)); 36 - if(renderer == NULL) 37 - return NULL; 38 - 39 - memset(renderer, 0, sizeof(GPU_Renderer)); 40 - 41 - renderer->id = request; 42 - renderer->id.renderer = GPU_RENDERER_GLES_3; 43 - renderer->shader_language = GPU_LANGUAGE_GLSLES; 44 - renderer->min_shader_version = 100; 45 - renderer->max_shader_version = SDL_GPU_GLSL_VERSION; 46 - 47 - renderer->default_image_anchor_x = 0.5f; 48 - renderer->default_image_anchor_y = 0.5f; 49 - 50 - renderer->current_context_target = NULL; 51 - 52 - renderer->impl = (GPU_RendererImpl*)SDL_malloc(sizeof(GPU_RendererImpl)); 53 - memset(renderer->impl, 0, sizeof(GPU_RendererImpl)); 54 - SET_COMMON_FUNCTIONS(renderer->impl); 55 - 56 - return renderer; 57 - } 58 - 59 - void GPU_FreeRenderer_GLES_3(GPU_Renderer* renderer) 60 - { 61 - if(renderer == NULL) 62 - return; 63 - 64 - SDL_free(renderer); 65 - } 66 - 67 - 68 - #endif 1 + #include "SDL_gpu_GLES_3.h" 2 + #include "SDL_gpu_RendererImpl.h" 3 + 4 + 5 + #if defined(SDL_GPU_DISABLE_GLES) || defined(SDL_GPU_DISABLE_GLES_3) 6 + 7 + // Dummy implementations 8 + GPU_Renderer* GPU_CreateRenderer_GLES_3(GPU_RendererID request) {return NULL;} 9 + void GPU_FreeRenderer_GLES_3(GPU_Renderer* renderer) {} 10 + 11 + #else 12 + 13 + 14 + // Most of the code pulled in from here... 15 + #define SDL_GPU_USE_GLES 16 + #define SDL_GPU_GL_TIER 3 17 + #define SDL_GPU_GLES_MAJOR_VERSION 3 18 + #define SDL_GPU_GLSL_VERSION 300 19 + 20 + #define SDL_GPU_USE_BUFFER_PIPELINE 21 + #ifdef __IPHONEOS__ 22 + #define SDL_GPU_USE_BUFFER_RESET 23 + #endif 24 + #define SDL_GPU_SKIP_ENABLE_TEXTURE_2D 25 + #define SDL_GPU_ASSUME_SHADERS 26 + // TODO: Make this dynamic because GLES 3.1 supports it 27 + #define SDL_GPU_DISABLE_TEXTURE_GETS 28 + 29 + #include "renderer_GL_common.inl" 30 + #include "renderer_shapes_GL_common.inl" 31 + 32 + 33 + GPU_Renderer* GPU_CreateRenderer_GLES_3(GPU_RendererID request) 34 + { 35 + GPU_Renderer* renderer = (GPU_Renderer*)SDL_malloc(sizeof(GPU_Renderer)); 36 + if(renderer == NULL) 37 + return NULL; 38 + 39 + memset(renderer, 0, sizeof(GPU_Renderer)); 40 + 41 + renderer->id = request; 42 + renderer->id.renderer = GPU_RENDERER_GLES_3; 43 + renderer->shader_language = GPU_LANGUAGE_GLSLES; 44 + renderer->min_shader_version = 100; 45 + renderer->max_shader_version = SDL_GPU_GLSL_VERSION; 46 + 47 + renderer->default_image_anchor_x = 0.5f; 48 + renderer->default_image_anchor_y = 0.5f; 49 + 50 + renderer->current_context_target = NULL; 51 + 52 + renderer->impl = (GPU_RendererImpl*)SDL_malloc(sizeof(GPU_RendererImpl)); 53 + memset(renderer->impl, 0, sizeof(GPU_RendererImpl)); 54 + SET_COMMON_FUNCTIONS(renderer->impl); 55 + 56 + return renderer; 57 + } 58 + 59 + void GPU_FreeRenderer_GLES_3(GPU_Renderer* renderer) 60 + { 61 + if(renderer == NULL) 62 + return; 63 + 64 + SDL_free(renderer); 65 + } 66 + 67 + 68 + #endif