mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-11 21:58:31 +09:00
[Feat] (MG_State/TextureState|MG_Impl/Texture): Add fake CubeMapTexture support.
This commit is contained in:
@@ -23,7 +23,7 @@ namespace MobileGL {
|
|||||||
GLsizei height, GLenum format, GLenum type, const void* pixels) {
|
GLsizei height, GLenum format, GLenum type, const void* pixels) {
|
||||||
// ======================= Converting ================================
|
// ======================= Converting ================================
|
||||||
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
||||||
TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget);
|
TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target);
|
||||||
TextureInputFormat textureInputFormat = MG_Util::ConvertGLEnumToTextureInputFormat(format);
|
TextureInputFormat textureInputFormat = MG_Util::ConvertGLEnumToTextureInputFormat(format);
|
||||||
TexturePixelDataType texturePixelDataType = MG_Util::ConvertGLEnumToTexturePixelDataType(type);
|
TexturePixelDataType texturePixelDataType = MG_Util::ConvertGLEnumToTexturePixelDataType(type);
|
||||||
TextureInternalFormat textureInternalFormat = MG_Util::ConvertGLEnumToTextureInternalFormat(format);
|
TextureInternalFormat textureInternalFormat = MG_Util::ConvertGLEnumToTextureInternalFormat(format);
|
||||||
@@ -117,7 +117,7 @@ namespace MobileGL {
|
|||||||
|
|
||||||
// ======================= Converting ================================
|
// ======================= Converting ================================
|
||||||
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
||||||
TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget);
|
TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target);
|
||||||
|
|
||||||
// ======================= Processing ================================
|
// ======================= Processing ================================
|
||||||
SharedPtr<MG_State::GLState::ITextureObject> textureObject = nullptr;
|
SharedPtr<MG_State::GLState::ITextureObject> textureObject = nullptr;
|
||||||
@@ -198,7 +198,7 @@ namespace MobileGL {
|
|||||||
void TexParameteri_State(GLenum target, GLenum pname, GLint param) {
|
void TexParameteri_State(GLenum target, GLenum pname, GLint param) {
|
||||||
// ======================= Converting ================================
|
// ======================= Converting ================================
|
||||||
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
||||||
TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget);
|
TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target);
|
||||||
|
|
||||||
// ======================= Processing ================================
|
// ======================= Processing ================================
|
||||||
SharedPtr<MG_State::GLState::ITextureObject> textureObject = nullptr;
|
SharedPtr<MG_State::GLState::ITextureObject> textureObject = nullptr;
|
||||||
@@ -309,7 +309,7 @@ namespace MobileGL {
|
|||||||
pixels);
|
pixels);
|
||||||
// ======================= Converting ================================
|
// ======================= Converting ================================
|
||||||
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
||||||
TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget);
|
TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target);
|
||||||
TextureInputFormat textureInputFormat = MG_Util::ConvertGLEnumToTextureInputFormat(format);
|
TextureInputFormat textureInputFormat = MG_Util::ConvertGLEnumToTextureInputFormat(format);
|
||||||
TexturePixelDataType texturePixelDataType = MG_Util::ConvertGLEnumToTexturePixelDataType(type);
|
TexturePixelDataType texturePixelDataType = MG_Util::ConvertGLEnumToTexturePixelDataType(type);
|
||||||
TextureInternalFormat textureInternalFormat = MG_Util::ConvertGLEnumToTextureInternalFormat(internalformat);
|
TextureInternalFormat textureInternalFormat = MG_Util::ConvertGLEnumToTextureInternalFormat(internalformat);
|
||||||
@@ -426,7 +426,7 @@ namespace MobileGL {
|
|||||||
void GetTexParameteriv_State(GLenum target, GLenum pname, GLint* params) {
|
void GetTexParameteriv_State(GLenum target, GLenum pname, GLint* params) {
|
||||||
// ======================= Converting ================================
|
// ======================= Converting ================================
|
||||||
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
||||||
TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget);
|
TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target);
|
||||||
|
|
||||||
// ======================= Processing ================================
|
// ======================= Processing ================================
|
||||||
SharedPtr<MG_State::GLState::ITextureObject> textureObject = nullptr;
|
SharedPtr<MG_State::GLState::ITextureObject> textureObject = nullptr;
|
||||||
@@ -511,7 +511,7 @@ namespace MobileGL {
|
|||||||
void GetTexParameterfv_State(GLenum target, GLenum pname, GLfloat* params) {
|
void GetTexParameterfv_State(GLenum target, GLenum pname, GLfloat* params) {
|
||||||
// ======================= Converting ================================
|
// ======================= Converting ================================
|
||||||
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
||||||
TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget);
|
TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target);
|
||||||
|
|
||||||
// ======================= Processing ================================
|
// ======================= Processing ================================
|
||||||
SharedPtr<MG_State::GLState::ITextureObject> textureObject = nullptr;
|
SharedPtr<MG_State::GLState::ITextureObject> textureObject = nullptr;
|
||||||
@@ -597,7 +597,7 @@ namespace MobileGL {
|
|||||||
MGLOG_D("GetTexLevelParameteriv_State called");
|
MGLOG_D("GetTexLevelParameteriv_State called");
|
||||||
// ======================= Converting ================================
|
// ======================= Converting ================================
|
||||||
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
||||||
TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget);
|
TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target);
|
||||||
|
|
||||||
// ===================== Error Checking ==============================
|
// ===================== Error Checking ==============================
|
||||||
if (!TextureImpl::ValidateTextureUploadTarget(textureUploadingTarget)) return;
|
if (!TextureImpl::ValidateTextureUploadTarget(textureUploadingTarget)) return;
|
||||||
@@ -664,7 +664,7 @@ namespace MobileGL {
|
|||||||
void GetTexLevelParameterfv_State(GLenum target, GLint level, GLenum pname, GLfloat* params) {
|
void GetTexLevelParameterfv_State(GLenum target, GLint level, GLenum pname, GLfloat* params) {
|
||||||
// ======================= Converting ================================
|
// ======================= Converting ================================
|
||||||
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target);
|
||||||
TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget);
|
TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target);
|
||||||
|
|
||||||
// ===================== Error Checking ==============================
|
// ===================== Error Checking ==============================
|
||||||
if (!TextureImpl::ValidateTextureUploadTarget(textureUploadingTarget)) return;
|
if (!TextureImpl::ValidateTextureUploadTarget(textureUploadingTarget)) return;
|
||||||
@@ -842,7 +842,9 @@ namespace MobileGL {
|
|||||||
auto textureObject = MG_State::pGLContext->GetTextureObject(texture);
|
auto textureObject = MG_State::pGLContext->GetTextureObject(texture);
|
||||||
|
|
||||||
// ===================== Error Checking ==============================
|
// ===================== Error Checking ==============================
|
||||||
if (!TextureImpl::ValidateTextureTargetUniformity(textureObject, textureTarget)) return;
|
if (textureTarget != TextureTarget::TextureCubeMap &&
|
||||||
|
!TextureImpl::ValidateTextureTargetUniformity(textureObject, textureTarget))
|
||||||
|
return;
|
||||||
|
|
||||||
// ======================= Processing ================================
|
// ======================= Processing ================================
|
||||||
if (!textureObject) {
|
if (!textureObject) {
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ namespace MobileGL {
|
|||||||
case TextureTarget::Texture1D:
|
case TextureTarget::Texture1D:
|
||||||
textureObject = MakeShared<TextureObject1D>(index);
|
textureObject = MakeShared<TextureObject1D>(index);
|
||||||
break;
|
break;
|
||||||
|
case TextureTarget::TextureCubeMap: // TODO
|
||||||
case TextureTarget::Texture2D:
|
case TextureTarget::Texture2D:
|
||||||
textureObject = MakeShared<TextureObject2D>(index);
|
textureObject = MakeShared<TextureObject2D>(index);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -11,6 +11,12 @@ namespace MobileGL {
|
|||||||
case GL_TEXTURE_3D:
|
case GL_TEXTURE_3D:
|
||||||
return TextureTarget::Texture3D;
|
return TextureTarget::Texture3D;
|
||||||
case GL_TEXTURE_CUBE_MAP:
|
case GL_TEXTURE_CUBE_MAP:
|
||||||
|
case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
|
||||||
|
case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
|
||||||
|
case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
|
||||||
|
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
|
||||||
|
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
|
||||||
|
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
|
||||||
return TextureTarget::TextureCubeMap;
|
return TextureTarget::TextureCubeMap;
|
||||||
case GL_TEXTURE_2D_ARRAY:
|
case GL_TEXTURE_2D_ARRAY:
|
||||||
return TextureTarget::Texture2DArray;
|
return TextureTarget::Texture2DArray;
|
||||||
|
|||||||
Reference in New Issue
Block a user