mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-08 04:08:32 +09:00
86 lines
2.8 KiB
C++
86 lines
2.8 KiB
C++
//
|
|
// Created by BZLZHH on 2025/4/4.
|
|
//
|
|
|
|
#include "GLState.h"
|
|
|
|
TextureState* MG_State_T::textureState;
|
|
std::queue<GLenum> MG_State_T::glErrorQueue;
|
|
|
|
namespace MG_State {
|
|
MG_State_T* MG_State_O;
|
|
|
|
void Init() {
|
|
MG_State_O = new MG_State_T();
|
|
MG_State_T::textureState = new TextureState();
|
|
}
|
|
|
|
void Destroy() {
|
|
delete MG_State_O;
|
|
}
|
|
|
|
void SetError(GLenum error) {
|
|
if (error == GL_NO_ERROR) {
|
|
return;
|
|
}
|
|
MG_State_T::glErrorQueue.push(error);
|
|
}
|
|
|
|
GLenum GetError() {
|
|
if (MG_State_T::glErrorQueue.empty()) {
|
|
return GL_NO_ERROR;
|
|
}
|
|
GLenum error = MG_State_T::glErrorQueue.front();
|
|
MG_State_T::glErrorQueue.pop();
|
|
return error;
|
|
}
|
|
|
|
// Texture
|
|
GLenum BindTextureUnit(GLenum textureUnit) {
|
|
return MG_State_T::textureState->BindUnit(textureUnit);
|
|
}
|
|
|
|
GLenum CreateTexture(GLuint* texture) {
|
|
return MG_State_T::textureState->Create(texture);
|
|
}
|
|
|
|
GLenum CreateTextures(GLsizei n, GLuint* textures) {
|
|
return MG_State_T::textureState->CreateN(n, textures);
|
|
}
|
|
|
|
GLenum BindTexture(GLenum target, GLuint texture) {
|
|
return MG_State_T::textureState->Bind(target, texture);
|
|
}
|
|
|
|
GLenum UploadTexture2D(GLenum target, GLint level, GLint internalFormat,
|
|
GLsizei width, GLsizei height, GLint border, GLenum format,
|
|
GLenum type, const void* data) {
|
|
return MG_State_T::textureState->Upload2D(target, level, internalFormat, width, height, border, format, type, data);
|
|
}
|
|
|
|
GLenum UpdateTextureRegion2D(GLenum target, GLint level, GLint xoffset,
|
|
GLint yoffset, GLsizei width, GLsizei height, GLenum format,
|
|
GLenum type, const GLvoid* data) {
|
|
return MG_State_T::textureState->UpdateRegion2D(target, level, xoffset, yoffset, width, height, format, type, data);
|
|
}
|
|
|
|
GLenum SetTexturePropertyInt(GLenum target, GLenum pname, GLint param) {
|
|
return MG_State_T::textureState->SetTexturePropertyInt(target, pname, param);
|
|
}
|
|
|
|
GLenum SetTexturePropertyFloat(GLenum target, GLenum pname, GLfloat param) {
|
|
return MG_State_T::textureState->SetTexturePropertyFloat(target, pname, param);
|
|
}
|
|
|
|
GLenum DeleteTexture(GLuint texture) {
|
|
return MG_State_T::textureState->Delete(texture);
|
|
}
|
|
|
|
GLenum DeleteTextures(GLsizei n, const GLuint* textures) {
|
|
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);
|
|
}
|
|
} |