mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-12 14:18:31 +09:00
[Feat] (...): Add ProgramState while implementing these gl functions. Rename some functions in MG_State.
This commit is contained in:
@@ -9,6 +9,7 @@ TextureState* MG_State_T::textureState = nullptr;
|
||||
CommonState* MG_State_T::commonState = nullptr;
|
||||
BufferState* MG_State_T::bufferState = nullptr;
|
||||
VertexArrayState* MG_State_T::vertexArrayState = nullptr;
|
||||
ProgramState* MG_State_T::programState = nullptr;
|
||||
|
||||
namespace MG_State {
|
||||
void Init() {
|
||||
@@ -16,6 +17,7 @@ namespace MG_State {
|
||||
MG_State_T::commonState = new CommonState();
|
||||
MG_State_T::bufferState = new BufferState();
|
||||
MG_State_T::vertexArrayState = new VertexArrayState();
|
||||
MG_State_T::programState = new ProgramState();
|
||||
}
|
||||
|
||||
void Destroy() {
|
||||
@@ -23,6 +25,7 @@ namespace MG_State {
|
||||
delete MG_State_T::commonState;
|
||||
delete MG_State_T::bufferState;
|
||||
delete MG_State_T::vertexArrayState;
|
||||
delete MG_State_T::programState;
|
||||
}
|
||||
|
||||
void SetError(GLenum error) {
|
||||
@@ -88,8 +91,8 @@ namespace MG_State {
|
||||
return MG_State_T::textureState->DeleteN(n, textures);
|
||||
}
|
||||
|
||||
GLenum GetTextureLevelPropertyIntVector(GLenum target, GLint level, GLenum pname, GLint* params) {
|
||||
return MG_State_T::textureState->GetLevelPropertyIntVector(target, level, pname, params);
|
||||
GLenum QueryTextureLevelPropertyIntVector(GLenum target, GLint level, GLenum pname, GLint* params) {
|
||||
return MG_State_T::textureState->QueryLevelPropertyIntVector(target, level, pname, params);
|
||||
}
|
||||
|
||||
// Common
|
||||
@@ -97,8 +100,8 @@ namespace MG_State {
|
||||
return MG_State_T::commonState->SetPixelStoreInt(pname, param);
|
||||
}
|
||||
|
||||
GLint MG_State::GetPixelStoreInt(GLenum pname) {
|
||||
return MG_State_T::commonState->GetPixelStoreInt(pname);
|
||||
GLint MG_State::QueryPixelStoreInt(GLenum pname) {
|
||||
return MG_State_T::commonState->QueryPixelStoreInt(pname);
|
||||
}
|
||||
|
||||
// Buffer
|
||||
@@ -180,4 +183,73 @@ namespace MG_State {
|
||||
index, size, type, GL_FALSE, stride, pointer, true, currentBuffer
|
||||
);
|
||||
}
|
||||
|
||||
// Program
|
||||
GLenum CreateShader(GLenum type, GLuint* shader) {
|
||||
return MG_State_T::programState->CreateShader(type, shader);
|
||||
}
|
||||
|
||||
GLenum CreateProgram(GLuint* program) {
|
||||
return MG_State_T::programState->CreateProgram(program);
|
||||
}
|
||||
|
||||
GLenum DeleteShader(GLuint shader) {
|
||||
return MG_State_T::programState->DeleteShader(shader);
|
||||
}
|
||||
|
||||
GLenum DeleteProgram(GLuint program) {
|
||||
return MG_State_T::programState->DeleteProgram(program);
|
||||
}
|
||||
|
||||
GLenum LinkShaderToProgram(GLuint program, GLuint shader) {
|
||||
return MG_State_T::programState->LinkShaderToProgram(program, shader);
|
||||
}
|
||||
|
||||
GLenum UploadShaderSource(GLuint shader, GLsizei count, const GLchar** string, const GLint* length) {
|
||||
return MG_State_T::programState->UploadShaderSource(shader, count, string, length);
|
||||
}
|
||||
|
||||
GLenum BuildShaderStage(GLuint shader) {
|
||||
return MG_State_T::programState->BuildShaderStage(shader);
|
||||
}
|
||||
|
||||
GLenum FinalizeProgramPipeline(GLuint program) {
|
||||
return MG_State_T::programState->FinalizeProgramPipeline(program);
|
||||
}
|
||||
|
||||
GLenum ActivateRenderProgram(GLuint program) {
|
||||
return MG_State_T::programState->ActivateRenderProgram(program);
|
||||
}
|
||||
|
||||
GLenum DefineProgramAttributeBinding(GLuint program, GLuint index, const GLchar* name) {
|
||||
return MG_State_T::programState->DefineProgramAttributeBinding(program, index, name);
|
||||
}
|
||||
|
||||
GLint QueryProgramAttributeBinding(GLuint program, const GLchar* name) {
|
||||
return MG_State_T::programState->QueryProgramAttributeBinding(program, name);
|
||||
}
|
||||
|
||||
GLint QueryProgramUniformLocation(GLuint program, const GLchar* name) {
|
||||
return MG_State_T::programState->QueryProgramUniformLocation(program, name);
|
||||
}
|
||||
|
||||
GLenum QueryProgramStateIntVector(GLuint program, GLenum pname, GLint* params) {
|
||||
return MG_State_T::programState->QueryProgramStateIntVector(program, pname, params);
|
||||
}
|
||||
|
||||
GLenum QueryShaderStateIntVector(GLuint shader, GLenum pname, GLint* params) {
|
||||
return MG_State_T::programState->QueryShaderStateIntVector(shader, pname, params);
|
||||
}
|
||||
|
||||
GLuint GetCurrentProgram() {
|
||||
return MG_State_T::programState->GetCurrentProgram();
|
||||
}
|
||||
|
||||
bool SetProgramStatus(GLuint program, GLboolean status) {
|
||||
return MG_State_T::programState->SetProgramStatus(program, status);
|
||||
}
|
||||
|
||||
bool SetShaderStatus(GLuint shader, GLboolean status) {
|
||||
return MG_State_T::programState->SetShaderStatus(shader, status);
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,7 @@ struct MG_State_T {
|
||||
static CommonState* commonState;
|
||||
static BufferState* bufferState;
|
||||
static VertexArrayState* vertexArrayState;
|
||||
static ProgramState* programState;
|
||||
};
|
||||
|
||||
namespace MG_State {
|
||||
@@ -36,11 +37,11 @@ namespace MG_State {
|
||||
GLenum SetTexturePropertyFloat(GLenum target, GLenum pname, GLfloat param);
|
||||
GLenum DeleteTexture(GLuint texture);
|
||||
GLenum DeleteTextures(GLsizei n, const GLuint* textures);
|
||||
GLenum GetTextureLevelPropertyIntVector(GLenum target, GLint level, GLenum pname, GLint* params);
|
||||
GLenum QueryTextureLevelPropertyIntVector(GLenum target, GLint level, GLenum pname, GLint* params);
|
||||
|
||||
// Common
|
||||
GLenum SetPixelStoreInt(GLenum pname, GLint param);
|
||||
GLint GetPixelStoreInt(GLenum pname);
|
||||
GLint QueryPixelStoreInt(GLenum pname);
|
||||
|
||||
// Buffer
|
||||
GLenum AcquireBufferMemory(GLenum target, GLenum access, void** mappedPtr);
|
||||
@@ -54,7 +55,6 @@ namespace MG_State {
|
||||
GLenum QueryBufferPropertyIntVector(GLenum target, GLenum pname, GLint* params);
|
||||
|
||||
// VertexArray
|
||||
|
||||
GLenum CreateVertexArray(GLuint* array);
|
||||
GLenum CreateVertexArrays(GLsizei n, GLuint* arrays);
|
||||
GLenum BindVertexArray(GLuint array);
|
||||
@@ -65,6 +65,26 @@ namespace MG_State {
|
||||
const void* pointer);
|
||||
GLenum SetVertexAttributeLayoutInt(GLuint index, GLint size, GLenum type,
|
||||
GLsizei stride, const void* pointer);
|
||||
|
||||
// Program
|
||||
GLenum CreateShader(GLenum type, GLuint* shader);
|
||||
GLenum CreateProgram(GLuint* program);
|
||||
GLenum DeleteShader(GLuint shader);
|
||||
GLenum DeleteProgram(GLuint program);
|
||||
GLenum LinkShaderToProgram(GLuint program, GLuint shader);
|
||||
GLenum UploadShaderSource(GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
|
||||
GLenum BuildShaderStage(GLuint shader);
|
||||
GLenum FinalizeProgramPipeline(GLuint program);
|
||||
GLenum ActivateRenderProgram(GLuint program);
|
||||
GLenum DefineProgramAttributeBinding(GLuint program, GLuint index, const GLchar* name);
|
||||
GLint QueryProgramAttributeBinding(GLuint program, const GLchar* name);
|
||||
GLint QueryProgramUniformLocation(GLuint program, const GLchar* name);
|
||||
GLenum QueryProgramStateIntVector(GLuint program, GLenum pname, GLint* params);
|
||||
GLenum QueryShaderStateIntVector(GLuint shader, GLenum pname, GLint* params);
|
||||
|
||||
GLuint GetCurrentProgram();
|
||||
bool SetProgramStatus(GLuint program, GLboolean status);
|
||||
bool SetShaderStatus(GLuint shader, GLboolean status);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user