diff --git a/src/gpu/framebuffer.cpp b/src/gpu/framebuffer.cpp index b9c5b387..8a6df89e 100644 --- a/src/gpu/framebuffer.cpp +++ b/src/gpu/framebuffer.cpp @@ -64,163 +64,152 @@ uint32_t FramebufferFormat::GetFormat() switch (m_format) { #if defined USE_D3D9 || defined _XBOX - case R_16_F: return D3DFMT_R16F; - case R_32_F: return D3DFMT_R32F; - case RG_16: - case RG_16_I: - case RG_16_UI: return D3DFMT_G16R16; - case RG_16_F: return D3DFMT_G16R16F; - case RG_32_F: return D3DFMT_G32R32F; - case RGB_8: - case RGB_8_I: - case RGB_8_UI: return D3DFMT_R8G8B8; - case RGBA_8: - case RGBA_8_I: - case RGBA_8_UI: return D3DFMT_A8R8G8B8; - case RGBA_16: - case RGBA_16_I: - case RGBA_16_UI: return D3DFMT_A16B16G16R16; - case RGBA_16_F: return D3DFMT_A16B16G16R16F; - case RGBA_32_F: return D3DFMT_A32B32G32R32F; - - default: ASSERT(false, "not supported by DirectX"); - return 0; + case R_16_F: return D3DFMT_R16F; + case R_32_F: return D3DFMT_R32F; + case RG_16: + case RG_16_I: + case RG_16_UI: return D3DFMT_G16R16; + case RG_16_F: return D3DFMT_G16R16F; + case RG_32_F: return D3DFMT_G32R32F; + case RGB_8: + case RGB_8_I: + case RGB_8_UI: return D3DFMT_R8G8B8; + case RGBA_8: + case RGBA_8_I: + case RGBA_8_UI: return D3DFMT_A8R8G8B8; + case RGBA_16: + case RGBA_16_I: + case RGBA_16_UI: return D3DFMT_A16B16G16R16; + case RGBA_16_F: return D3DFMT_A16B16G16R16F; + case RGBA_32_F: return D3DFMT_A32B32G32R32F; #elif defined __CELLOS_LV2__ /* Supported drawable formats on the PS3: GL_ARGB_SCE, GL_RGB16F_ARB, * GL_RGBA16F_ARB, GL_RGB32F_ARB, GL_RGBA32F_ARB, GL_LUMINANCE32F_ARB. */ - case RGB_16_F: return GL_RGB16F_ARB; - case RGB_32_F: return GL_RGB32F_ARB; - case RGBA_8: return GL_ARGB_SCE; - case RGBA_16_F: return GL_RGBA16F_ARB; - case RGBA_32_F: return GL_RGBA32F_ARB; - - default: ASSERT(false, "not supported by the PS3"); - return 0; + case RGB_16_F: return GL_RGB16F_ARB; + case RGB_32_F: return GL_RGB32F_ARB; + case RGBA_8: return GL_ARGB_SCE; + case RGBA_16_F: return GL_RGBA16F_ARB; + case RGBA_32_F: return GL_RGBA32F_ARB; #elif defined HAVE_GLES_2X - /* FIXME: not implemented at all */ + /* FIXME: not implemented at all */ - default: ASSERT(false, "not implemented"); - return 0; #elif defined __APPLE__ && defined __MACH__ - case R_8: - case R_8_I: - case R_8_UI: - case R_8_F: - - case R_16: - case R_16_I: - case R_16_UI: - case R_16_F: - - case R_32_I: - case R_32: - case R_32_UI: - case R_32_F: return GL_RED; - - case RG_8: - case RG_8_I: - case RG_8_UI: - case RG_8_F: - - case RG_16: - case RG_16_I: - case RG_16_UI: - case RG_16_F: - - case RG_32: - case RG_32_I: - case RG_32_UI: - case RG_32_F: return GL_RG; - - case RGB_8: - case RGB_8_I: - case RGB_8_UI: - case RGB_8_F: - - case RGB_16: - case RGB_16_I: - case RGB_16_UI: - case RGB_16_F: - - case RGB_32: - case RGB_32_I: - case RGB_32_UI: - case RGB_32_F: return (m_invert_rgb)?(GL_BGR):(GL_RGB); - - case RGBA_8: - case RGBA_8_I: - case RGBA_8_UI: - case RGBA_8_F: - - case RGBA_16: - case RGBA_16_I: - case RGBA_16_UI: - case RGBA_16_F: - - case RGBA_32: - case RGBA_32_I: - case RGBA_32_UI: - case RGBA_32_F: return (m_invert_rgb)?(GL_BGRA):(GL_RGBA); + case R_8: + case R_8_I: + case R_8_UI: + case R_8_F: + + case R_16: + case R_16_I: + case R_16_UI: + case R_16_F: + + case R_32_I: + case R_32: + case R_32_UI: + case R_32_F: return GL_RED; + + case RG_8: + case RG_8_I: + case RG_8_UI: + case RG_8_F: + + case RG_16: + case RG_16_I: + case RG_16_UI: + case RG_16_F: + + case RG_32: + case RG_32_I: + case RG_32_UI: + case RG_32_F: return GL_RG; + + case RGB_8: + case RGB_8_I: + case RGB_8_UI: + case RGB_8_F: + + case RGB_16: + case RGB_16_I: + case RGB_16_UI: + case RGB_16_F: + + case RGB_32: + case RGB_32_I: + case RGB_32_UI: + case RGB_32_F: return (m_invert_rgb)?(GL_BGR):(GL_RGB); + + case RGBA_8: + case RGBA_8_I: + case RGBA_8_UI: + case RGBA_8_F: + + case RGBA_16: + case RGBA_16_I: + case RGBA_16_UI: + case RGBA_16_F: + + case RGBA_32: + case RGBA_32_I: + case RGBA_32_UI: + case RGBA_32_F: return (m_invert_rgb)?(GL_BGRA):(GL_RGBA); #else - case R_8: return GL_R8; - case R_8_I: return GL_R8I; - case R_8_UI: return GL_R8UI; - - case R_16: return GL_R16; - case R_16_I: return GL_R16I; - case R_16_UI: return GL_R16UI; - case R_16_F: return GL_R16F; - - case R_32_I: return GL_R32I; - case R_32_UI: return GL_R32UI; - case R_32_F: return GL_R32F; - - case RG_8: return GL_RG8; - case RG_8_I: return GL_RG8I; - case RG_8_UI: return GL_RG8UI; - - case RG_16: return GL_RG16; - case RG_16_I: return GL_RG16I; - case RG_16_UI: return GL_RG16UI; - case RG_16_F: return GL_RG16F; - - case RG_32_I: return GL_RG32I; - case RG_32_UI: return GL_RG32UI; - case RG_32_F: return GL_RG32F; - - case RGB_8: return GL_RGB8; - case RGB_8_I: return GL_RGB8I; - case RGB_8_UI: return GL_RGB8UI; - - case RGB_16: return GL_RGB16; - case RGB_16_I: return GL_RGB16I; - case RGB_16_UI: return GL_RGB16UI; - case RGB_16_F: return GL_RGB16F; - - case RGB_32_I: return GL_RGB32I; - case RGB_32_UI: return GL_RGB32UI; - case RGB_32_F: return GL_RGB32F; - - case RGBA_8: return GL_RGBA8; - case RGBA_8_I: return GL_RGBA8I; - case RGBA_8_UI: return GL_RGBA8UI; - - case RGBA_16: return GL_RGBA16; - case RGBA_16_I: return GL_RGBA16I; - case RGBA_16_UI: return GL_RGBA16UI; - case RGBA_16_F: return GL_RGBA16F; - - case RGBA_32_I: return GL_RGBA32I; - case RGBA_32_UI: return GL_RGBA32UI; - case RGBA_32_F: return GL_RGBA32F; - - default: ASSERT(false, "not supported by OpenGL"); - return 0; + case R_8: return GL_R8; + case R_8_I: return GL_R8I; + case R_8_UI: return GL_R8UI; + + case R_16: return GL_R16; + case R_16_I: return GL_R16I; + case R_16_UI: return GL_R16UI; + case R_16_F: return GL_R16F; + + case R_32_I: return GL_R32I; + case R_32_UI: return GL_R32UI; + case R_32_F: return GL_R32F; + + case RG_8: return GL_RG8; + case RG_8_I: return GL_RG8I; + case RG_8_UI: return GL_RG8UI; + + case RG_16: return GL_RG16; + case RG_16_I: return GL_RG16I; + case RG_16_UI: return GL_RG16UI; + case RG_16_F: return GL_RG16F; + + case RG_32_I: return GL_RG32I; + case RG_32_UI: return GL_RG32UI; + case RG_32_F: return GL_RG32F; + + case RGB_8: return GL_RGB8; + case RGB_8_I: return GL_RGB8I; + case RGB_8_UI: return GL_RGB8UI; + + case RGB_16: return GL_RGB16; + case RGB_16_I: return GL_RGB16I; + case RGB_16_UI: return GL_RGB16UI; + case RGB_16_F: return GL_RGB16F; + + case RGB_32_I: return GL_RGB32I; + case RGB_32_UI: return GL_RGB32UI; + case RGB_32_F: return GL_RGB32F; + + case RGBA_8: return GL_RGBA8; + case RGBA_8_I: return GL_RGBA8I; + case RGBA_8_UI: return GL_RGBA8UI; + + case RGBA_16: return GL_RGBA16; + case RGBA_16_I: return GL_RGBA16I; + case RGBA_16_UI: return GL_RGBA16UI; + case RGBA_16_F: return GL_RGBA16F; + + case RGBA_32_I: return GL_RGBA32I; + case RGBA_32_UI: return GL_RGBA32UI; + case RGBA_32_F: return GL_RGBA32F; #endif - }; - - ASSERT(false, "not implemented"); - return 0; + default: + ASSERT(false, "unknown framebuffer format %d", m_format); + return 0; + } } uint32_t FramebufferFormat::GetFormatOrder() @@ -228,129 +217,63 @@ uint32_t FramebufferFormat::GetFormatOrder() switch (m_format) { #if defined USE_D3D9 || defined _XBOX - /* FIXME: not implemented at all */ - default: ASSERT(false, "not implemented"); - return 0; + /* FIXME: not implemented at all */ #elif defined __CELLOS_LV2__ - /* FIXME: not implemented at all */ - default: ASSERT(false, "not implemented"); - return 0; + /* FIXME: not implemented at all */ #elif defined HAVE_GLES_2X - /* FIXME: not implemented at all */ - default: ASSERT(false, "not implemented"); - return 0; + /* FIXME: not implemented at all */ #elif defined __APPLE__ && defined __MACH__ - case R_8: - case RG_8: - case RGB_8: - case RGBA_8: - case R_8_I: - case RG_8_I: - case RGB_8_I: - case RGBA_8_I: return GL_BYTE; - case R_8_UI: - case RG_8_UI: - case RGB_8_UI: - case RGBA_8_UI: return GL_UNSIGNED_BYTE; - - case R_16: - case RG_16: - case RGB_16: - case RGBA_16: - case R_16_I: - case RG_16_I: - case RGB_16_I: - case RGBA_16_I: return GL_SHORT; - case R_16_UI: - case RG_16_UI: - case RGB_16_UI: - case RGBA_16_UI: return GL_UNSIGNED_SHORT; - case R_16_F: - case RG_16_F: - case RGB_16_F: - case RGBA_16_F: ASSERT(false, "not supported by IOS:OGL:ES"); - return 0; - - case R_32_I: - case RG_32_I: - case RGB_32_I: - case RGBA_32_I: return GL_INT; - case R_32_UI: - case RG_32_UI: - case RGB_32_UI: - case RGBA_32_UI: return GL_UNSIGNED_INT; - case R_32_F: - case RG_32_F: - case RGB_32_F: - case RGBA_32_F: return GL_FLOAT; - - default: ASSERT(false, "not supported by IOS:OGL:ES"); - return 0; + case R_8: case RG_8: case RGB_8: case RGBA_8: + case R_8_I: case RG_8_I: case RGB_8_I: case RGBA_8_I: + return GL_BYTE; + case R_8_UI: case RG_8_UI: case RGB_8_UI: case RGBA_8_UI: + return GL_UNSIGNED_BYTE; + + case R_16: case RG_16: case RGB_16: case RGBA_16: + case R_16_I: case RG_16_I: case RGB_16_I: case RGBA_16_I: + return GL_SHORT; + case R_16_UI: case RG_16_UI: case RGB_16_UI: case RGBA_16_UI: + return GL_UNSIGNED_SHORT; + + case R_16_F: case RG_16_F: case RGB_16_F: case RGBA_16_F: + ASSERT(false, "unsupported framebuffer format order %d", m_format); + return 0; + + case R_32_I: case RG_32_I: case RGB_32_I: case RGBA_32_I: + return GL_INT; + case R_32_UI: case RG_32_UI: case RGB_32_UI: case RGBA_32_UI: + return GL_UNSIGNED_INT; + case R_32_F: case RG_32_F: case RGB_32_F: case RGBA_32_F: + return GL_FLOAT; + + default: + ASSERT(false, "unsupported framebuffer format order %d", m_format); + return 0; #else - case R_8: - case R_8_I: - case R_8_UI: - case R_8_F: - - case R_16: - case R_16_I: - case R_16_UI: - case R_16_F: - - case R_32_I: - case R_32: - case R_32_UI: - case R_32_F: return GL_RED; - - case RG_8: - case RG_8_I: - case RG_8_UI: - case RG_8_F: - - case RG_16: - case RG_16_I: - case RG_16_UI: - case RG_16_F: - - case RG_32: - case RG_32_I: - case RG_32_UI: - case RG_32_F: return GL_RG; - - case RGB_8: - case RGB_8_I: - case RGB_8_UI: - case RGB_8_F: - - case RGB_16: - case RGB_16_I: - case RGB_16_UI: - case RGB_16_F: - - case RGB_32: - case RGB_32_I: - case RGB_32_UI: - case RGB_32_F: return (m_invert_rgb)?(GL_BGR):(GL_RGB); - - case RGBA_8: - case RGBA_8_I: - case RGBA_8_UI: - case RGBA_8_F: - - case RGBA_16: - case RGBA_16_I: - case RGBA_16_UI: - case RGBA_16_F: - - case RGBA_32: - case RGBA_32_I: - case RGBA_32_UI: - case RGBA_32_F: return (m_invert_rgb)?(GL_BGRA):(GL_RGBA); + case R_8: case R_8_I: case R_8_UI: case R_8_F: + case R_16: case R_16_I: case R_16_UI: case R_16_F: + case R_32: case R_32_I: case R_32_UI: case R_32_F: + return GL_RED; + + case RG_8: case RG_8_I: case RG_8_UI: case RG_8_F: + case RG_16: case RG_16_I: case RG_16_UI: case RG_16_F: + case RG_32: case RG_32_I: case RG_32_UI: case RG_32_F: + return GL_RG; + + case RGB_8: case RGB_8_I: case RGB_8_UI: case RGB_8_F: + case RGB_16: case RGB_16_I: case RGB_16_UI: case RGB_16_F: + case RGB_32: case RGB_32_I: case RGB_32_UI: case RGB_32_F: + return m_invert_rgb ? GL_BGR : GL_RGB; + + case RGBA_8: case RGBA_8_I: case RGBA_8_UI: case RGBA_8_F: + case RGBA_16: case RGBA_16_I: case RGBA_16_UI: case RGBA_16_F: + case RGBA_32: case RGBA_32_I: case RGBA_32_UI: case RGBA_32_F: + return (m_invert_rgb)?(GL_BGRA):(GL_RGBA); #endif + default: + ASSERT(false, "unknown framebuffer format order %d", m_format); + return 0; } - - ASSERT(false, "unknown pixel format"); - return 0; } //