Ticket #9248: libmythui-ogl-w32.diff

File libmythui-ogl-w32.diff, 3.9 KB (added by Lawrence Rust <lvr@…>, 10 years ago)

Fix OpenGL compilation on Windows

  • libs/libmythui/mythrender_opengl_defs.h

     
    220220typedef void ( * MYTH_GLDISABLEVERTEXATTRIBARRAY)
    221221    (GLuint index);
    222222typedef void ( * MYTH_GLBINDATTRIBLOCATION)
    223     (GLuint program, GLuint index, const GLcharARB *name);
     223    (GLuint program, GLuint index, const GLchar *name);
    224224typedef void ( * MYTH_GLVERTEXATTRIB4F)
    225225    (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
    226226
  • libs/libmythui/mythrender_opengl.h

     
    99
    1010#ifdef _WIN32
    1111#include <GL/glext.h>
     12typedef char GLchar;
    1213#endif
    1314
    1415#ifdef Q_WS_MACX
  • libs/libmythui/mythrender_opengl.cpp

     
    11301130
    11311131    EnableTextures(tex);
    11321132    glBindTexture(m_textures[tex].m_type, tex);
    1133 
     1133#ifdef GL_ARRAY_BUFFER
    11341134    m_glBindBufferARB(GL_ARRAY_BUFFER, m_textures[tex].m_vbo);
     1135#endif
    11351136    UpdateTextureVertices(tex, src, dst);
     1137#ifdef GL_ARRAY_BUFFER
    11361138    m_glBufferDataARB(GL_ARRAY_BUFFER, kVertexSize, NULL, GL_STREAM_DRAW);
    11371139    void* target = m_glMapBufferARB(GL_ARRAY_BUFFER, GL_WRITE_ONLY);
    11381140    if (target)
    11391141        memcpy(target, m_textures[tex].m_vertex_data, kVertexSize);
    11401142    m_glUnmapBufferARB(GL_ARRAY_BUFFER);
     1143#endif
    11411144
    11421145    m_glEnableVertexAttribArray(VERTEX_INDEX);
    11431146    m_glEnableVertexAttribArray(TEXTURE_INDEX);
     
    11541157
    11551158    m_glDisableVertexAttribArray(TEXTURE_INDEX);
    11561159    m_glDisableVertexAttribArray(VERTEX_INDEX);
     1160#ifdef GL_ARRAY_BUFFER
    11571161    m_glBindBufferARB(GL_ARRAY_BUFFER, 0);
     1162#endif
    11581163}
    11591164
    11601165void MythRenderOpenGL::DrawBitmapLegacy(uint *textures, uint texture_count,
     
    12691274                                VERTEX_SIZE * sizeof(GLfloat),
    12701275                               (const void *) kVertexOffset);
    12711276        glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
     1277#ifdef GL_ARRAY_BUFFER
    12721278        m_glBindBufferARB(GL_ARRAY_BUFFER, 0);
     1279#endif
    12731280    }
    12741281
    12751282    if (drawLine)
     
    12851292                                VERTEX_SIZE * sizeof(GLfloat),
    12861293                               (const void *) kVertexOffset);
    12871294        glDrawArrays(GL_LINE_LOOP, 0, 4);
     1295#ifdef GL_ARRAY_BUFFER
    12881296        m_glBindBufferARB(GL_ARRAY_BUFFER, 0);
     1297#endif
    12891298    }
    12901299
    12911300    m_glDisableVertexAttribArray(VERTEX_INDEX);
     
    17771786    const char* tmp[1] = { src.constData() };
    17781787    m_glShaderSource(result, 1, tmp, NULL);
    17791788    m_glCompileShader(result);
    1780     GLint compiled;
     1789    GLint compiled = 0;
     1790#ifdef GL_COMPILE_STATUS
    17811791    m_glGetShader(result, GL_COMPILE_STATUS, &compiled);
     1792#endif
    17821793    if (!compiled)
    17831794    {
     1795#ifdef GL_INFO_LOG_LENGTH
    17841796        GLint length = 0;
    17851797        m_glGetShader(result, GL_INFO_LOG_LENGTH, &length);
    17861798        if (length > 1)
     
    17911803            VERBOSE(VB_IMPORTANT, log);
    17921804            free(log);
    17931805        }
     1806#endif
    17941807        m_glDeleteShader(result);
    17951808        result = 0;
    17961809    }
     
    19932006        m_cachedVBOS.insert(ref, vbo);
    19942007        m_vboExpiry.append(ref);
    19952008
     2009#ifdef GL_ARRAY_BUFFER
    19962010        m_glBindBufferARB(GL_ARRAY_BUFFER, vbo);
    19972011        m_glBufferDataARB(GL_ARRAY_BUFFER, kTextureOffset, NULL, GL_STREAM_DRAW);
    19982012        void* target = m_glMapBufferARB(GL_ARRAY_BUFFER, GL_WRITE_ONLY);
    19992013        if (target)
    20002014            memcpy(target, vertices, kTextureOffset);
    20012015        m_glUnmapBufferARB(GL_ARRAY_BUFFER);
    2002 
     2016#endif
    20032017        ExpireVBOS(MAX_VERTEX_CACHE);
    20042018        return;
    20052019    }
    20062020
     2021#ifdef GL_ARRAY_BUFFER
    20072022    m_glBindBufferARB(GL_ARRAY_BUFFER, m_cachedVBOS.value(ref));
     2023#endif
    20082024}
    20092025
    20102026void MythRenderOpenGL::ExpireVBOS(uint max)