I'm getting these when trying to compile residualvm with opengl and SDL1. Is there something missing in SDL1.2.15 or is it maybe a regression? The same works fine with SDL2...any hints appreciated, thanks
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::~GfxTinyGL()':
engines/grim/gfx_tinygl.cpp:72: undefined reference to `Graphics::tglDeleteBlitImage(Graphics::BlitImage*)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::createBitmap(Grim::BitmapData*)':
engines/grim/gfx_tinygl.cpp:907: undefined reference to `Graphics::tglGenBlitImage()'
engines/grim/gfx_tinygl.cpp:915: undefined reference to `Graphics::tglUploadBlitImage(Graphics::BlitImage*,
Graphics::Surface const&, unsigned long, bool)'
engines/grim/gfx_tinygl.cpp:919: undefined reference to `Graphics::tglGenBlitImage()'
engines/grim/gfx_tinygl.cpp:927: undefined reference to `Graphics::tglUploadBlitImage(Graphics::BlitImage*,
Graphics::Surface const&, unsigned long, bool)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::drawBitmap(Grim::Bitmap const*, int,
int, unsigned long)':
engines/grim/gfx_tinygl.cpp:966: undefined reference to `Graphics::tglBlit(Graphics::BlitImage*,
Graphics::BlitTransform const&)'
engines/grim/gfx_tinygl.cpp:990: undefined reference to `Graphics::tglBlit(Graphics::BlitImage*, int, int)'
engines/grim/gfx_tinygl.cpp:995: undefined reference to `Graphics::tglBlitZBuffer(Graphics::BlitImage*, int,
int)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::destroyBitmap(Grim::BitmapData*)':
engines/grim/gfx_tinygl.cpp:1002: undefined reference to `Graphics::tglDeleteBlitImage(Graphics::BlitImage*)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::createTextObject(Grim::TextObject*)':
engines/grim/gfx_tinygl.cpp:1086: undefined reference to `Graphics::tglGenBlitImage()'
engines/grim/gfx_tinygl.cpp:1087: undefined reference to `Graphics::tglUploadBlitImage(Graphics::BlitImage*,
Graphics::Surface const&, unsigned long, bool)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::drawTextObject(Grim::TextObject const*)':
engines/grim/gfx_tinygl.cpp:1108: undefined reference to `Graphics::tglBlit(Graphics::BlitImage*, int, int)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::destroyTextObject(Grim::TextObject*)':
engines/grim/gfx_tinygl.cpp:1119: undefined reference to `Graphics::tglDeleteBlitImage(Graphics::BlitImage*)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::prepareMovieFrame(Graphics::Surface*)':
engines/grim/gfx_tinygl.cpp:1215: undefined reference to `Graphics::tglGenBlitImage()'
engines/grim/gfx_tinygl.cpp:1216: undefined reference to `Graphics::tglUploadBlitImage(Graphics::BlitImage*,
Graphics::Surface const&, unsigned long, bool)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::drawMovieFrame(int, int)':
engines/grim/gfx_tinygl.cpp:1220: undefined reference to `Graphics::tglBlitFast(Graphics::BlitImage*, int,
int)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::releaseMovieFrame()':
engines/grim/gfx_tinygl.cpp:1224: undefined reference to `Graphics::tglDeleteBlitImage(Graphics::BlitImage*)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::loadEmergFont()':
engines/grim/gfx_tinygl.cpp:1234: undefined reference to `Graphics::tglGenBlitImage()'
engines/grim/gfx_tinygl.cpp:1244: undefined reference to `Graphics::tglUploadBlitImage(Graphics::BlitImage*,
Graphics::Surface const&, unsigned long, bool)'
engines/grim/libgrim.a(gfx_tinygl.o): In function `Grim::GfxTinyGL::drawEmergString(int, int, char const*,
Grim::Color const&)':
engines/grim/gfx_tinygl.cpp:1257: undefined reference to `Graphics::tglBlit(Graphics::BlitImage*,
Graphics::BlitTransform const&)'
engines/myst3/libmyst3.a(gfx_tinygl.o): In function `Myst3::TinyGLRenderer::drawTexturedRect2D(Common::Rect
const&, Common::Rect const&, Myst3::Texture*, float, bool)':
engines/myst3/gfx_tinygl.cpp:195: undefined reference to `Graphics::tglBlit(Graphics::BlitImage*,
Graphics::BlitTransform const&)'
engines/myst3/libmyst3.a(gfx_tinygl.o): In function `Myst3::TinyGLRenderer::draw2DText(Common::String
const&, Common::Point const&)':
engines/myst3/gfx_tinygl.cpp:228: undefined reference to `Graphics::tglBlit(Graphics::BlitImage*,
Graphics::BlitTransform const&)'
engines/myst3/libmyst3.a(gfx_tinygl_texture.o): In function `Graphics::PixelFormat::PixelFormat()':
./graphics/pixelformat.h:146: undefined reference to `Graphics::tglGenBlitImage()'
engines/myst3/libmyst3.a(gfx_tinygl_texture.o): In function `Myst3::TinyGLTexture::~TinyGLTexture()':
engines/myst3/gfx_tinygl_texture.cpp:58: undefined reference to
`Graphics::tglDeleteBlitImage(Graphics::BlitImage*)'
engines/myst3/libmyst3.a(gfx_tinygl_texture.o): In function `Myst3::TinyGLTexture::update(Graphics::Surface
const*)':
engines/myst3/gfx_tinygl_texture.cpp:65: undefined reference to
`Graphics::tglUploadBlitImage(Graphics::BlitImage*, Graphics::Surface const&, unsigned long, bool)'
graphics/libgraphics.a(init.o): In function `TinyGL::glInit(void*, int)':
graphics/tinygl/init.cpp:238: undefined reference to `Graphics::Internal::tglBlitResetScissorRect()'
graphics/libgraphics.a(zdirtyrect.o): In function `TinyGL::tglDisposeResources(TinyGL::GLContext*)':
graphics/tinygl/zdirtyrect.cpp:101: undefined reference to `Graphics::Internal::tglCleanupImages()'
graphics/libgraphics.a(zdirtyrect.o): In function
`Graphics::BlittingDrawCall::BlittingDrawCall(Graphics::BlitImage*, Graphics::BlitTransform const&,
Graphics::BlittingDrawCall::BlittingMode)':
graphics/tinygl/zdirtyrect.cpp:521: undefined reference to
`Graphics::tglIncBlitImageRef(Graphics::BlitImage*)'
graphics/tinygl/zdirtyrect.cpp:523: undefined reference to
`Graphics::tglGetBlitImageVersion(Graphics::BlitImage*)'
graphics/libgraphics.a(zdirtyrect.o): In function `Graphics::BlittingDrawCall::~BlittingDrawCall()':
graphics/tinygl/zdirtyrect.cpp:530: undefined reference to
`Graphics::tglDeleteBlitImage(Graphics::BlitImage*)'
graphics/libgraphics.a(zdirtyrect.o): In function `Graphics::BlittingDrawCall::execute(bool) const':
graphics/tinygl/zdirtyrect.cpp:542: undefined reference to
`Graphics::Internal::tglBlit(Graphics::BlitImage*, Graphics::BlitTransform const&)'
graphics/tinygl/zdirtyrect.cpp:545: undefined reference to
`Graphics::Internal::tglBlitNoBlend(Graphics::BlitImage*, Graphics::BlitTransform const&)'
graphics/tinygl/zdirtyrect.cpp:548: undefined reference to
`Graphics::Internal::tglBlitFast(Graphics::BlitImage*, int, int)'
graphics/tinygl/zdirtyrect.cpp:551: undefined reference to
`Graphics::Internal::tglBlitZBuffer(Graphics::BlitImage*, int, int)'
graphics/libgraphics.a(zdirtyrect.o): In function `Graphics::BlittingDrawCall::execute(Common::Rect const&,
bool) const':
graphics/tinygl/zdirtyrect.cpp:562: undefined reference to
`Graphics::Internal::tglBlitSetScissorRect(Common::Rect const&)'
graphics/tinygl/zdirtyrect.cpp:564: undefined reference to `Graphics::Internal::tglBlitResetScissorRect()'
graphics/libgraphics.a(zdirtyrect.o): In function `Graphics::BlittingDrawCall::computeDirtyRegion()':
graphics/tinygl/zdirtyrect.cpp:595: undefined reference to
`Graphics::tglGetBlitImageSize(Graphics::BlitImage*, int&, int&)'
graphics/tinygl/zdirtyrect.cpp:602: undefined reference to
`Graphics::tglGetBlitImageSize(Graphics::BlitImage*, int&, int&)'
graphics/libgraphics.a(zdirtyrect.o): In function
`Graphics::BlittingDrawCall::operator==(Graphics::BlittingDrawCall const&) const':
graphics/tinygl/zdirtyrect.cpp:623: undefined reference to
`Graphics::tglGetBlitImageVersion(Graphics::BlitImage*)'
gmake: *** [residualvm] Error 1
Nothing in that linker error seems to point to SDL. Perhaps code is conditionally compiled for SDL2 but not for SDL1? I guess you have tried a clean build?
When it came out I did build a few versions of scummvm with it, updates and complete.
No errors or weird behaviour.
Since then I stopped building the SDL1 version due to unsupportment from scummvm devs. It still builds and can be used but sdl1 bug reports lay dormant, probably forever.
If new SDL1 versions will surface I'll do scummvm builds with it, just to check if it's still working and provide feedback, but releases are more or less obsolete now .
@Capehill Basically we should be able to use OGLES2 on SDL1 as well, just not with direct support, but create a SDL1 window, and then use OGLES2 via something like IOGLES2->aglMakeCurrent(sdl_context);
If we can create an example which will be able to draw something by ogles2 into sdl1 window, then we can adapt Irrliht to works over SDL1/Ogles2 without EGL.
Through i can't find for now how to take a context if we create it with SDL_Surface *screen.. I.e. we have that:
@Capehill I mean can't we draw the stuff by ogles2 , to the SDL1 window, by making it like "aglSetContext()" or something ? I didn't mean that SDL itself should support it, but just theoreticaly can't we use SDL window for "just create a window + events", and then render to that window via ogles2 calls ?