https://bugs.kde.org/show_bug.cgi?id=360682

            Bug ID: 360682
           Summary: bug+fix: compiling Krita without OpenGL
           Product: krita
           Version: 2.9.11
          Platform: Ubuntu Packages
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: Tools
          Assignee: krita-bugs-n...@kde.org
          Reporter: urqu...@yahoo.com

I was building Krita on a platform without OpenGL, only OpenGL ES.  It would
fail in calligra/krita/ui/canvas/kiscanvas2.cpp saying that
m_d->openGLImageTextures was not a member function.  Since I knew I could do
this in the past, I tracked it down and found that in two locations,
openGLImageTextures was called outside of a "#ifdef HAVE_OPENGL".

Around line 261 I changed:

    if (m_d->currentCanvasIsOpenGL) {
#ifdef HAVE_OPENGL
        Q_ASSERT(m_d->openGLImageTextures);
        m_d->openGLImageTextures->setChannelFlags(m_d->channelFlags);
#else
        Q_ASSERT_X(0, "KisCanvas2::setChannelFlags", "Bad use of
setChannelFlags(). It shouldn't have happened =(");
#endif
    } else {
        Q_ASSERT(m_d->prescaledProjection);
        m_d->prescaledProjection->setChannelFlags(m_d->channelFlags);
    }

***to***

#ifdef HAVE_OPENGL
    if (m_d->currentCanvasIsOpenGL) {
//#ifdef HAVE_OPENGL
        Q_ASSERT(m_d->openGLImageTextures);
        m_d->openGLImageTextures->setChannelFlags(m_d->channelFlags);
//#else
        Q_ASSERT_X(0, "KisCanvas2::setChannelFlags", "Bad use of
setChannelFlags(). It shouldn't have happened =(");
//#endif
    } else {
#endif
        Q_ASSERT(m_d->prescaledProjection);
        m_d->prescaledProjection->setChannelFlags(m_d->channelFlags);
#ifdef HAVE_OPENGL
    }
#endif

***and around line 413***

{
    m_d->prescaledProjection = 0;
    m_d->openGLImageTextures = 0;

***to***

{
    m_d->prescaledProjection = 0;
#ifdef HAVE_OPENGL
    m_d->openGLImageTextures = 0;
#endif

  Dirty, but it compiles and runs.  Seems to be stable.  I wish I could fully
test it, but the next step is getting the OS to see the tablet.

Reproducible: Always

Steps to Reproduce:
1.  Follow standard feline instructions to compile Krita 2.9.11 on an OpenGL ES
platform.  It *might* happen if you hard-wire KoConfig.h to "#define
HAVE_OPENGL false" on any machine.
2.
3.

Actual Results:  
error: m_d->openGLImageTextures was not a member function

Expected Results:  
compile without OpenGL

Hardware: ODROID XU4.  Obscure platform.  Bug low priority.  I would not have
reported it except that I also found a solution.  Dirty though it is.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to