diff --git a/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp b/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp index 4f9cd823..99cf4087 100644 --- a/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp +++ b/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp @@ -23,7 +23,7 @@ namespace MobileGL { GLsizei height, GLenum format, GLenum type, const void* pixels) { // ======================= Converting ================================ TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target); - TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget); + TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target); TextureInputFormat textureInputFormat = MG_Util::ConvertGLEnumToTextureInputFormat(format); TexturePixelDataType texturePixelDataType = MG_Util::ConvertGLEnumToTexturePixelDataType(type); TextureInternalFormat textureInternalFormat = MG_Util::ConvertGLEnumToTextureInternalFormat(format); @@ -117,7 +117,7 @@ namespace MobileGL { // ======================= Converting ================================ TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target); - TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget); + TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target); // ======================= Processing ================================ SharedPtr textureObject = nullptr; @@ -198,7 +198,7 @@ namespace MobileGL { void TexParameteri_State(GLenum target, GLenum pname, GLint param) { // ======================= Converting ================================ TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target); - TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget); + TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target); // ======================= Processing ================================ SharedPtr textureObject = nullptr; @@ -309,7 +309,7 @@ namespace MobileGL { pixels); // ======================= Converting ================================ TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target); - TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget); + TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target); TextureInputFormat textureInputFormat = MG_Util::ConvertGLEnumToTextureInputFormat(format); TexturePixelDataType texturePixelDataType = MG_Util::ConvertGLEnumToTexturePixelDataType(type); TextureInternalFormat textureInternalFormat = MG_Util::ConvertGLEnumToTextureInternalFormat(internalformat); @@ -426,7 +426,7 @@ namespace MobileGL { void GetTexParameteriv_State(GLenum target, GLenum pname, GLint* params) { // ======================= Converting ================================ TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target); - TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget); + TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target); // ======================= Processing ================================ SharedPtr textureObject = nullptr; @@ -511,7 +511,7 @@ namespace MobileGL { void GetTexParameterfv_State(GLenum target, GLenum pname, GLfloat* params) { // ======================= Converting ================================ TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target); - TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget); + TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target); // ======================= Processing ================================ SharedPtr textureObject = nullptr; @@ -597,7 +597,7 @@ namespace MobileGL { MGLOG_D("GetTexLevelParameteriv_State called"); // ======================= Converting ================================ TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target); - TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget); + TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target); // ===================== Error Checking ============================== if (!TextureImpl::ValidateTextureUploadTarget(textureUploadingTarget)) return; @@ -664,7 +664,7 @@ namespace MobileGL { void GetTexLevelParameterfv_State(GLenum target, GLint level, GLenum pname, GLfloat* params) { // ======================= Converting ================================ TextureUploadTarget textureUploadingTarget = MG_Util::ConvertGLEnumToTextureUploadTarget(target); - TextureTarget textureTarget = MG_Util::ConvertTextureUploadTargetToTextureTarget(textureUploadingTarget); + TextureTarget textureTarget = MG_Util::ConvertGLEnumToTextureTarget(target); // ===================== Error Checking ============================== if (!TextureImpl::ValidateTextureUploadTarget(textureUploadingTarget)) return; @@ -842,7 +842,9 @@ namespace MobileGL { auto textureObject = MG_State::pGLContext->GetTextureObject(texture); // ===================== Error Checking ============================== - if (!TextureImpl::ValidateTextureTargetUniformity(textureObject, textureTarget)) return; + if (textureTarget != TextureTarget::TextureCubeMap && + !TextureImpl::ValidateTextureTargetUniformity(textureObject, textureTarget)) + return; // ======================= Processing ================================ if (!textureObject) { diff --git a/MobileGL/MG_State/GLState/TextureState/TextureState.cpp b/MobileGL/MG_State/GLState/TextureState/TextureState.cpp index a3fd5686..63e303b0 100644 --- a/MobileGL/MG_State/GLState/TextureState/TextureState.cpp +++ b/MobileGL/MG_State/GLState/TextureState/TextureState.cpp @@ -31,6 +31,7 @@ namespace MobileGL { case TextureTarget::Texture1D: textureObject = MakeShared(index); break; + case TextureTarget::TextureCubeMap: // TODO case TextureTarget::Texture2D: textureObject = MakeShared(index); break; diff --git a/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp b/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp index bab401ec..565789cd 100644 --- a/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp +++ b/MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp @@ -11,6 +11,12 @@ namespace MobileGL { case GL_TEXTURE_3D: return TextureTarget::Texture3D; 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; case GL_TEXTURE_2D_ARRAY: return TextureTarget::Texture2DArray;