#include "SDL_internal.h"
#ifndef SDL_shaders_gles2_h_
#define SDL_shaders_gles2_h_
#ifdef SDL_VIDEO_RENDER_OGL_ES2
typedef enum
{
GLES2_SHADER_FRAGMENT_INCLUDE_NONE = 0,
GLES2_SHADER_FRAGMENT_INCLUDE_BEST_TEXCOORD_PRECISION,
GLES2_SHADER_FRAGMENT_INCLUDE_MEDIUM_TEXCOORD_PRECISION,
GLES2_SHADER_FRAGMENT_INCLUDE_HIGH_TEXCOORD_PRECISION,
GLES2_SHADER_FRAGMENT_INCLUDE_UNDEF_PRECISION,
GLES2_SHADER_FRAGMENT_INCLUDE_COUNT
} GLES2_ShaderIncludeType;
typedef enum
{
GLES2_SHADER_VERTEX_DEFAULT = 0,
GLES2_SHADER_FRAGMENT_SOLID,
GLES2_SHADER_FRAGMENT_TEXTURE_PALETTE_NEAREST,
GLES2_SHADER_FRAGMENT_TEXTURE_PALETTE_LINEAR,
GLES2_SHADER_FRAGMENT_TEXTURE_PALETTE_PIXELART,
GLES2_SHADER_FRAGMENT_TEXTURE_PALETTE_NEAREST_COLORSWAP,
GLES2_SHADER_FRAGMENT_TEXTURE_PALETTE_LINEAR_COLORSWAP,
GLES2_SHADER_FRAGMENT_TEXTURE_PALETTE_PIXELART_COLORSWAP,
GLES2_SHADER_FRAGMENT_TEXTURE_RGB,
GLES2_SHADER_FRAGMENT_TEXTURE_RGB_PIXELART,
GLES2_SHADER_FRAGMENT_TEXTURE_BGR,
GLES2_SHADER_FRAGMENT_TEXTURE_BGR_PIXELART,
GLES2_SHADER_FRAGMENT_TEXTURE_ARGB,
GLES2_SHADER_FRAGMENT_TEXTURE_ARGB_PIXELART,
GLES2_SHADER_FRAGMENT_TEXTURE_ABGR,
GLES2_SHADER_FRAGMENT_TEXTURE_ABGR_PIXELART,
#ifdef SDL_HAVE_YUV
GLES2_SHADER_FRAGMENT_TEXTURE_YUV,
GLES2_SHADER_FRAGMENT_TEXTURE_NV12_RA,
GLES2_SHADER_FRAGMENT_TEXTURE_NV12_RG,
GLES2_SHADER_FRAGMENT_TEXTURE_NV21_RA,
GLES2_SHADER_FRAGMENT_TEXTURE_NV21_RG,
#endif
GLES2_SHADER_FRAGMENT_TEXTURE_EXTERNAL_OES,
GLES2_SHADER_COUNT
} GLES2_ShaderType;
extern const char *GLES2_GetShaderPrologue(GLES2_ShaderType type);
extern const char *GLES2_GetShaderInclude(GLES2_ShaderIncludeType type);
extern const char *GLES2_GetShader(GLES2_ShaderType type);
extern GLES2_ShaderIncludeType GLES2_GetTexCoordPrecisionEnumFromHint(void);
#endif
#endif