| @@ -50,70 +50,6 @@ uint32_t FramebufferFormat::GetFormat() | |||||
| case RGBA_8: | case RGBA_8: | ||||
| case RGBA_8_I: | case RGBA_8_I: | ||||
| case RGBA_8_UI: return GL_RGBA; | case RGBA_8_UI: return GL_RGBA; | ||||
| #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: | |||||
| # if defined GL_BGRA | |||||
| case RGBA_32_F: return (m_invert_rgb)?(GL_BGRA):(GL_RGBA); | |||||
| # else | |||||
| case RGBA_32_F: return GL_RGBA; | |||||
| # endif | |||||
| #else | #else | ||||
| case R_8: return GL_R8; | case R_8: return GL_R8; | ||||
| case R_8_I: return GL_R8I; | case R_8_I: return GL_R8I; | ||||
| @@ -142,30 +78,42 @@ uint32_t FramebufferFormat::GetFormat() | |||||
| case RG_32_F: return GL_RG32F; | case RG_32_F: return GL_RG32F; | ||||
| case RGB_8: return GL_RGB8; | case RGB_8: return GL_RGB8; | ||||
| #ifdef GL_RGB8I | |||||
| case RGB_8_I: return GL_RGB8I; | case RGB_8_I: return GL_RGB8I; | ||||
| case RGB_8_UI: return GL_RGB8UI; | case RGB_8_UI: return GL_RGB8UI; | ||||
| #endif | |||||
| case RGB_16: return GL_RGB16; | case RGB_16: return GL_RGB16; | ||||
| #ifdef GL_RGB16I | |||||
| case RGB_16_I: return GL_RGB16I; | case RGB_16_I: return GL_RGB16I; | ||||
| case RGB_16_UI: return GL_RGB16UI; | case RGB_16_UI: return GL_RGB16UI; | ||||
| case RGB_16_F: return GL_RGB16F; | case RGB_16_F: return GL_RGB16F; | ||||
| #endif | |||||
| #ifdef GL_RGB32I | |||||
| case RGB_32_I: return GL_RGB32I; | case RGB_32_I: return GL_RGB32I; | ||||
| case RGB_32_UI: return GL_RGB32UI; | case RGB_32_UI: return GL_RGB32UI; | ||||
| case RGB_32_F: return GL_RGB32F; | case RGB_32_F: return GL_RGB32F; | ||||
| #endif | |||||
| case RGBA_8: return GL_RGBA8; | case RGBA_8: return GL_RGBA8; | ||||
| #ifdef GL_RGBA8I | |||||
| case RGBA_8_I: return GL_RGBA8I; | case RGBA_8_I: return GL_RGBA8I; | ||||
| case RGBA_8_UI: return GL_RGBA8UI; | case RGBA_8_UI: return GL_RGBA8UI; | ||||
| #endif | |||||
| case RGBA_16: return GL_RGBA16; | case RGBA_16: return GL_RGBA16; | ||||
| #ifdef GL_RGBA16I | |||||
| case RGBA_16_I: return GL_RGBA16I; | case RGBA_16_I: return GL_RGBA16I; | ||||
| case RGBA_16_UI: return GL_RGBA16UI; | case RGBA_16_UI: return GL_RGBA16UI; | ||||
| case RGBA_16_F: return GL_RGBA16F; | case RGBA_16_F: return GL_RGBA16F; | ||||
| #endif | |||||
| #ifdef GL_RGBA32I | |||||
| case RGBA_32_I: return GL_RGBA32I; | case RGBA_32_I: return GL_RGBA32I; | ||||
| case RGBA_32_UI: return GL_RGBA32UI; | case RGBA_32_UI: return GL_RGBA32UI; | ||||
| case RGBA_32_F: return GL_RGBA32F; | case RGBA_32_F: return GL_RGBA32F; | ||||
| #endif | |||||
| #endif | #endif | ||||
| default: | default: | ||||
| ASSERT(false, "unknown framebuffer format %d", m_format); | ASSERT(false, "unknown framebuffer format %d", m_format); | ||||
| @@ -184,29 +132,6 @@ uint32_t FramebufferFormat::GetFormatOrder() | |||||
| return GL_BYTE; | return GL_BYTE; | ||||
| case R_8_UI: case RG_8_UI: case RGB_8_UI: case RGBA_8_UI: | case R_8_UI: case RG_8_UI: case RGB_8_UI: case RGBA_8_UI: | ||||
| return GL_UNSIGNED_BYTE; | return GL_UNSIGNED_BYTE; | ||||
| #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, "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; | |||||
| #else | #else | ||||
| case R_8: case R_8_I: case R_8_UI: case R_8_F: | 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_16: case R_16_I: case R_16_UI: case R_16_F: | ||||
| @@ -226,7 +151,7 @@ uint32_t FramebufferFormat::GetFormatOrder() | |||||
| case RGBA_8: case RGBA_8_I: case RGBA_8_UI: case RGBA_8_F: | 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_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: | case RGBA_32: case RGBA_32_I: case RGBA_32_UI: case RGBA_32_F: | ||||
| # if defined GL_BGRA | |||||
| # if defined GL_BGRA && !defined __APPLE__ | |||||
| return (m_invert_rgb)?(GL_BGRA):(GL_RGBA); | return (m_invert_rgb)?(GL_BGRA):(GL_RGBA); | ||||
| # else | # else | ||||
| return GL_RGBA; | return GL_RGBA; | ||||
| @@ -280,8 +205,10 @@ Framebuffer::Framebuffer(ivec2 size, FramebufferFormat fbo_format) | |||||
| glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrapmode); | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrapmode); | ||||
| glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filtering); | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filtering); | ||||
| glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filtering); | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filtering); | ||||
| msg::warn("lol intfmt %04x fmt %04x\n", internal_format, format); | |||||
| glTexImage2D(GL_TEXTURE_2D, 0, internal_format, size.x, size.y, 0, | glTexImage2D(GL_TEXTURE_2D, 0, internal_format, size.x, size.y, 0, | ||||
| format, GL_UNSIGNED_BYTE, nullptr); | format, GL_UNSIGNED_BYTE, nullptr); | ||||
| LOL_CHECK_GLERROR(); | |||||
| #if GL_VERSION_1_1 || GL_ES_VERSION_2_0 | #if GL_VERSION_1_1 || GL_ES_VERSION_2_0 | ||||
| glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, | glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, | ||||
| @@ -293,7 +220,7 @@ Framebuffer::Framebuffer(ivec2 size, FramebufferFormat fbo_format) | |||||
| m_data->m_depth = GL_INVALID_ENUM; | m_data->m_depth = GL_INVALID_ENUM; | ||||
| #if GL_VERSION_1_1 || GL_ES_VERSION_2_0 | #if GL_VERSION_1_1 || GL_ES_VERSION_2_0 | ||||
| if (depth != GL_INVALID_ENUM) | |||||
| if (0)//depth != GL_INVALID_ENUM) | |||||
| { | { | ||||
| /* XXX: might not work on GL ES, see | /* XXX: might not work on GL ES, see | ||||
| * http://stackoverflow.com/q/4041682/111461 | * http://stackoverflow.com/q/4041682/111461 | ||||