mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-08-09 20:24:14 +00:00
[client] egl: rework egl to accomodate post-processing filtering
This commit is contained in:
@@ -25,8 +25,74 @@
|
||||
|
||||
#include <GLES3/gl3.h>
|
||||
|
||||
#include "common/countedbuffer.h"
|
||||
|
||||
typedef struct EGL_Shader EGL_Shader;
|
||||
|
||||
enum EGL_UniformType
|
||||
{
|
||||
EGL_UNIFORM_TYPE_1F,
|
||||
EGL_UNIFORM_TYPE_2F,
|
||||
EGL_UNIFORM_TYPE_3F,
|
||||
EGL_UNIFORM_TYPE_4F,
|
||||
EGL_UNIFORM_TYPE_1I,
|
||||
EGL_UNIFORM_TYPE_2I,
|
||||
EGL_UNIFORM_TYPE_3I,
|
||||
EGL_UNIFORM_TYPE_4I,
|
||||
EGL_UNIFORM_TYPE_1UI,
|
||||
EGL_UNIFORM_TYPE_2UI,
|
||||
EGL_UNIFORM_TYPE_3UI,
|
||||
EGL_UNIFORM_TYPE_4UI,
|
||||
|
||||
// vectors
|
||||
EGL_UNIFORM_TYPE_1FV,
|
||||
EGL_UNIFORM_TYPE_2FV,
|
||||
EGL_UNIFORM_TYPE_3FV,
|
||||
EGL_UNIFORM_TYPE_4FV,
|
||||
EGL_UNIFORM_TYPE_1IV,
|
||||
EGL_UNIFORM_TYPE_2IV,
|
||||
EGL_UNIFORM_TYPE_3IV,
|
||||
EGL_UNIFORM_TYPE_4IV,
|
||||
EGL_UNIFORM_TYPE_1UIV,
|
||||
EGL_UNIFORM_TYPE_2UIV,
|
||||
EGL_UNIFORM_TYPE_3UIV,
|
||||
EGL_UNIFORM_TYPE_4UIV,
|
||||
|
||||
// matrices
|
||||
EGL_UNIFORM_TYPE_M2FV,
|
||||
EGL_UNIFORM_TYPE_M3FV,
|
||||
EGL_UNIFORM_TYPE_M4FV,
|
||||
EGL_UNIFORM_TYPE_M2x3FV,
|
||||
EGL_UNIFORM_TYPE_M3x2FV,
|
||||
EGL_UNIFORM_TYPE_M2x4FV,
|
||||
EGL_UNIFORM_TYPE_M4x2FV,
|
||||
EGL_UNIFORM_TYPE_M3x4FV,
|
||||
EGL_UNIFORM_TYPE_M4x3FV
|
||||
};
|
||||
|
||||
typedef struct EGL_Uniform
|
||||
{
|
||||
enum EGL_UniformType type;
|
||||
GLint location;
|
||||
|
||||
union
|
||||
{
|
||||
GLfloat f [4];
|
||||
GLint i [4];
|
||||
GLuint ui[4];
|
||||
|
||||
CountedBuffer * v;
|
||||
|
||||
struct
|
||||
{
|
||||
CountedBuffer * v;
|
||||
GLboolean transpose;
|
||||
}
|
||||
m;
|
||||
};
|
||||
}
|
||||
EGL_Uniform;
|
||||
|
||||
bool egl_shaderInit(EGL_Shader ** shader);
|
||||
void egl_shaderFree(EGL_Shader ** shader);
|
||||
|
||||
@@ -36,6 +102,10 @@ bool egl_shaderLoad(EGL_Shader * model, const char * vertex_file,
|
||||
bool egl_shaderCompile(EGL_Shader * model, const char * vertex_code,
|
||||
size_t vertex_size, const char * fragment_code, size_t fragment_size);
|
||||
|
||||
void egl_shaderSetUniforms(EGL_Shader * shader, EGL_Uniform * uniforms,
|
||||
int count);
|
||||
void egl_shaderFreeUniforms(EGL_Shader * shader);
|
||||
|
||||
void egl_shaderUse(EGL_Shader * shader);
|
||||
|
||||
void egl_shaderAssocTextures(EGL_Shader * shader, const int count);
|
||||
|
Reference in New Issue
Block a user