Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix use of system FTGL #54

Open
wants to merge 1 commit into
base: controllerfixup
Choose a base branch
from

Conversation

chewi
Copy link
Contributor

@chewi chewi commented Feb 8, 2017

Without this, it complains about FTGLTextureFont being an incomplete class and other weirdness.

@fgenesis
Copy link
Member

fgenesis commented Feb 8, 2017

Could you show the build error? I can't see where/why this would be necessary...
I think i had moved this at some point because somewhere down the include chain FTGL does #include <Windows.h> (hence the #undef GetCharWidth, min, max), and having this spill into every header that somehow includes this is very sad.

@chewi
Copy link
Contributor Author

chewi commented Feb 8, 2017

The other GL stuff is due to the missing RenderBase.h include. I guess the FTGL header was implicitly pulling the GL stuff in.

[ 10%] Building CXX object CMakeFiles/aquaria.dir/BBGE/TTFFont.cpp.o
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp: In destructor ‘TTFFont::~TTFFont()’:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:47:10: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete]
   delete font;
          ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:47:10: warning: invalid use of incomplete type ‘class FTGLTextureFont’
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:47:10: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined
   delete font;
          ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp: In member function ‘void TTFFont::destroy()’:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:56:10: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete]
   delete font;
          ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:56:10: warning: invalid use of incomplete type ‘class FTGLTextureFont’
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:56:10: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined
   delete font;
          ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp: In member function ‘void TTFFont::load(const string&, int)’:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:63:7: error: cannot convert ‘FTTextureFont*’ to ‘FTGLTextureFont*’ in assignment
  font = new FTGLTextureFont(str.c_str());
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:64:6: error: invalid use of incomplete type ‘class FTGLTextureFont’
  font->FaceSize(sz);
      ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp: In member function ‘void TTFFont::create(const unsigned char*, long unsigned int, int)’:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:69:7: error: cannot convert ‘FTTextureFont*’ to ‘FTGLTextureFont*’ in assignment
  font = new FTGLTextureFont(data, datalen);
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:70:6: error: invalid use of incomplete type ‘class FTGLTextureFont’
  font->FaceSize(sz);
      ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp: In member function ‘void TTFText::updateAlign()’:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:100:12: error: invalid use of incomplete type ‘class FTGLTextureFont’
  font->font->BBox(originalText.c_str(), llx, lly, llz, urx, ury, urz);
            ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp: In member function ‘virtual float TTFText::getStringWidth(const string&)’:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:137:14: error: invalid use of incomplete type ‘class FTGLTextureFont’
    font->font->BBox(p, llx, lly, llz, urx, ury, urz);
              ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:145:13: error: invalid use of incomplete type ‘class FTGLTextureFont’
   font->font->BBox(start + begin, llx, lly, llz, urx, ury, urz);
             ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp: In member function ‘void TTFText::updateFormatting()’:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:178:14: error: invalid use of incomplete type ‘class FTGLTextureFont’
    font->font->BBox(part.c_str(), llx, lly, llz, urx, ury, urz);
              ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:190:14: error: invalid use of incomplete type ‘class FTGLTextureFont’
    font->font->BBox(part.c_str(), llx, lly, llz, urx, ury, urz);
              ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:207:15: error: invalid use of incomplete type ‘class FTGLTextureFont’
     font->font->BBox(part.c_str(), llx, lly, llz, urx, ury, urz);
               ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:219:13: error: invalid use of incomplete type ‘class FTGLTextureFont’
   font->font->BBox(part.c_str(), llx, lly, llz, urx, ury, urz);
             ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:223:25: error: invalid use of incomplete type ‘class FTGLTextureFont’
  lineHeight = font->font->LineHeight();
                         ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp: In member function ‘virtual void TTFText::onRender()’:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:256:42: error: ‘glColor4f’ was not declared in this scope
    glColor4f(0,0,0,0.75f*alpha.x*alphaMod);
                                          ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:257:17: error: ‘glPushMatrix’ was not declared in this scope
    glPushMatrix();
                 ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:258:21: error: ‘glScalef’ was not declared in this scope
    glScalef(1, -1, 0);
                     ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:259:47: error: ‘glTranslatef’ was not declared in this scope
    glTranslatef(1 -hw, -1 + (i*-lineHeight), 0);
                                               ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:260:14: error: invalid use of incomplete type ‘class FTGLTextureFont’
    font->font->Render(text[i].c_str());
              ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:261:16: error: ‘glPopMatrix’ was not declared in this scope
    glPopMatrix();
                ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:265:56: error: ‘glColor4f’ was not declared in this scope
   glColor4f(color.x, color.y, color.z, alpha.x*alphaMod);
                                                        ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:266:16: error: ‘glPushMatrix’ was not declared in this scope
   glPushMatrix();
                ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:267:20: error: ‘glScalef’ was not declared in this scope
   glScalef(1, -1, 0);
                    ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:268:43: error: ‘glTranslatef’ was not declared in this scope
   glTranslatef(-hw, 0 + (i*-lineHeight), 0);
                                           ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:269:13: error: invalid use of incomplete type ‘class FTGLTextureFont’
   font->font->Render(text[i].c_str());
             ^
In file included from /home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:22:0:
/home/chewi/Projects/Aquaria/BBGE/TTFFont.h:26:7: note: forward declaration of ‘class FTGLTextureFont’
 class FTGLTextureFont;
       ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:270:15: error: ‘glPopMatrix’ was not declared in this scope
   glPopMatrix();
               ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:273:16: error: ‘GL_TEXTURE_2D’ was not declared in this scope
  glBindTexture(GL_TEXTURE_2D, 0);
                ^
/home/chewi/Projects/Aquaria/BBGE/TTFFont.cpp:273:32: error: ‘glBindTexture’ was not declared in this scope
  glBindTexture(GL_TEXTURE_2D, 0);
                                ^
make[2]: *** [CMakeFiles/aquaria.dir/build.make:2559: CMakeFiles/aquaria.dir/BBGE/TTFFont.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:70: CMakeFiles/aquaria.dir/all] Error 2
make: *** [Makefile:128: all] Error 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants