| @@ -64,163 +64,152 @@ uint32_t FramebufferFormat::GetFormat() | |||||
| switch (m_format) | switch (m_format) | ||||
| { | { | ||||
| #if defined USE_D3D9 || defined _XBOX | #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__ | #elif defined __CELLOS_LV2__ | ||||
| /* Supported drawable formats on the PS3: GL_ARGB_SCE, GL_RGB16F_ARB, | /* Supported drawable formats on the PS3: GL_ARGB_SCE, GL_RGB16F_ARB, | ||||
| * GL_RGBA16F_ARB, GL_RGB32F_ARB, GL_RGBA32F_ARB, GL_LUMINANCE32F_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 | #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__ | #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 | #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 | #endif | ||||
| }; | |||||
| ASSERT(false, "not implemented"); | |||||
| return 0; | |||||
| default: | |||||
| ASSERT(false, "unknown framebuffer format %d", m_format); | |||||
| return 0; | |||||
| } | |||||
| } | } | ||||
| uint32_t FramebufferFormat::GetFormatOrder() | uint32_t FramebufferFormat::GetFormatOrder() | ||||
| @@ -228,129 +217,63 @@ uint32_t FramebufferFormat::GetFormatOrder() | |||||
| switch (m_format) | switch (m_format) | ||||
| { | { | ||||
| #if defined USE_D3D9 || defined _XBOX | #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__ | #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 | #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__ | #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 | #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 | #endif | ||||
| default: | |||||
| ASSERT(false, "unknown framebuffer format order %d", m_format); | |||||
| return 0; | |||||
| } | } | ||||
| ASSERT(false, "unknown pixel format"); | |||||
| return 0; | |||||
| } | } | ||||
| // | // | ||||