Linux-only for now. This will be necessary for projects that do not actually use the rendering engine, such as LolRemez.legacy
| @@ -162,33 +162,6 @@ fi | |||||
| AM_CONDITIONAL(LOL_USE_GDIPLUS, test "${ac_cv_my_have_gdiplus}" = "yes") | AM_CONDITIONAL(LOL_USE_GDIPLUS, test "${ac_cv_my_have_gdiplus}" = "yes") | ||||
| dnl Use libavcodec? (required for movie encoding) | |||||
| ac_cv_my_have_ffmpeg="yes" | |||||
| PKG_CHECK_MODULES([LIBAVCODEC], [libavcodec], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| PKG_CHECK_MODULES([LIBAVUTIL], [libavutil], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| PKG_CHECK_MODULES([LIBAVFORMAT], [libavformat], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| PKG_CHECK_MODULES([LIBSWSCALE], [libswscale], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| if test "${ac_cv_my_have_ffmpeg}" = "no"; then | |||||
| ac_cv_my_have_ffmpeg="yes" | |||||
| AC_CHECK_HEADERS(libavcodec/avcodec.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| AC_CHECK_HEADERS(libavformat/avformat.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| AC_CHECK_HEADERS(libswscale/swscale.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| if test "${ac_cv_my_have_ffmpeg}" = "yes"; then | |||||
| LIBAVCODEC_LIBS="-lavcodec" | |||||
| LIBAVUTIL_LIBS="-lavutil" | |||||
| LIBAVFORMAT_LIBS="-lavformat" | |||||
| LIBSWSCALE_LIBS="-lswscale" | |||||
| AC_CHECK_LIB(ws2_32, main, LOL_LIBS="${LOL_LIBS} -lws2_32") | |||||
| fi | |||||
| fi | |||||
| if test "${ac_cv_my_have_ffmpeg}" != "no"; then | |||||
| AC_DEFINE(LOL_USE_FFMPEG, 1, Define to 1 to use FFmpeg) | |||||
| LOL_CFLAGS="${LOL_CFLAGS} ${LIBAVFORMAT_CFLAGS} ${LIBAVUTIL_CFLAGS} ${LIBAVCODEC_CFLAGS} ${LIBSWSCALE_CFLAGS}" | |||||
| LOL_LIBS="${LOL_LIBS} ${LIBAVFORMAT_LIBS} ${LIBAVUTIL_LIBS} ${LIBAVCODEC_LIBS} ${LIBSWSCALE_LIBS}" | |||||
| fi | |||||
| AM_CONDITIONAL(LOL_USE_FFMPEG, test "${ac_cv_my_have_ffmpeg}" != "no") | |||||
| dnl Are we building using MinGW? | dnl Are we building using MinGW? | ||||
| LOL_TRY_CXXFLAGS(-mwindows -mwin32, | LOL_TRY_CXXFLAGS(-mwindows -mwin32, | ||||
| [AM_CXXFLAGS="${AM_CXXFLAGS} -mwindows -mwin32" | [AM_CXXFLAGS="${AM_CXXFLAGS} -mwindows -mwin32" | ||||
| @@ -223,6 +196,7 @@ LOL_TRY_LDFLAGS(-framework UIKit, | |||||
| dnl Other complex checks | dnl Other complex checks | ||||
| LOL_AC_CHECK_OPENGL() | LOL_AC_CHECK_OPENGL() | ||||
| LOL_AC_CHECK_SDL() | LOL_AC_CHECK_SDL() | ||||
| LOL_AC_CHECK_FFMPEG() | |||||
| dnl Debug symbols | dnl Debug symbols | ||||
| @@ -0,0 +1,53 @@ | |||||
| dnl | |||||
| dnl Lol Engine | |||||
| dnl | |||||
| dnl Copyright © 2010—2016 Sam Hocevar <sam@hocevar.net> | |||||
| dnl | |||||
| dnl Lol Engine is free software. It comes without any warranty, to | |||||
| dnl the extent permitted by applicable law. You can redistribute it | |||||
| dnl and/or modify it under the terms of the Do What the Fuck You Want | |||||
| dnl to Public License, Version 2, as published by the WTFPL Task Force. | |||||
| dnl See http://www.wtfpl.net/ for more details. | |||||
| dnl | |||||
| # LOL_AC_CHECK_FFMPEG() | |||||
| # --------------------- | |||||
| AC_DEFUN([LOL_AC_CHECK_FFMPEG], | |||||
| [ | |||||
| if test "${enable_ffmpeg}" != "no"; then | |||||
| LOL_AC_CHECK_FFMPEG_INNER() | |||||
| fi | |||||
| AM_CONDITIONAL(LOL_USE_FFMPEG, test "${ac_cv_my_have_ffmpeg}" != "no") | |||||
| ]) | |||||
| # LOL_AC_CHECK_FFMPEG_INNER() | |||||
| # --------------------------- | |||||
| AC_DEFUN([LOL_AC_CHECK_FFMPEG_INNER], | |||||
| [ | |||||
| ac_cv_my_have_ffmpeg="yes" | |||||
| PKG_CHECK_MODULES([LIBAVCODEC], [libavcodec], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| PKG_CHECK_MODULES([LIBAVUTIL], [libavutil], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| PKG_CHECK_MODULES([LIBAVFORMAT], [libavformat], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| PKG_CHECK_MODULES([LIBSWSCALE], [libswscale], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| if test "${ac_cv_my_have_ffmpeg}" != "yes"; then | |||||
| ac_cv_my_have_ffmpeg="yes" | |||||
| AC_CHECK_HEADERS(libavcodec/avcodec.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| AC_CHECK_HEADERS(libavformat/avformat.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| AC_CHECK_HEADERS(libswscale/swscale.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
| if test "${ac_cv_my_have_ffmpeg}" = "yes"; then | |||||
| LIBAVCODEC_LIBS="-lavcodec" | |||||
| LIBAVUTIL_LIBS="-lavutil" | |||||
| LIBAVFORMAT_LIBS="-lavformat" | |||||
| LIBSWSCALE_LIBS="-lswscale" | |||||
| AC_CHECK_LIB(ws2_32, main, LOL_LIBS="${LOL_LIBS} -lws2_32") | |||||
| fi | |||||
| fi | |||||
| if test "${ac_cv_my_have_ffmpeg}" = "yes"; then | |||||
| AC_DEFINE(LOL_USE_FFMPEG, 1, Define to 1 to use FFmpeg) | |||||
| LOL_CFLAGS="${LOL_CFLAGS} ${LIBAVFORMAT_CFLAGS} ${LIBAVUTIL_CFLAGS} ${LIBAVCODEC_CFLAGS} ${LIBSWSCALE_CFLAGS}" | |||||
| LOL_LIBS="${LOL_LIBS} ${LIBAVFORMAT_LIBS} ${LIBAVUTIL_LIBS} ${LIBAVCODEC_LIBS} ${LIBSWSCALE_LIBS}" | |||||
| fi | |||||
| ]) # LOL_AC_CHECK_FFMPEG_INNER | |||||
| @@ -15,6 +15,19 @@ dnl | |||||
| # ------------------ | # ------------------ | ||||
| AC_DEFUN([LOL_AC_CHECK_SDL], | AC_DEFUN([LOL_AC_CHECK_SDL], | ||||
| [ | [ | ||||
| if test "${enable_sdl}" != "no"; then | |||||
| LOL_AC_CHECK_SDL_INNER() | |||||
| fi | |||||
| AM_CONDITIONAL(LOL_USE_SDL, test "x${ac_cv_my_have_sdl}" = xyes) | |||||
| AM_CONDITIONAL(LOL_USE_SDL_MIXER, test "x${ac_cv_my_have_sdl_mixer}" = xyes) | |||||
| AM_CONDITIONAL(LOL_USE_SDL_IMAGE, test "x${ac_cv_my_have_sdl_image}" = xyes) | |||||
| AM_CONDITIONAL(LOL_USE_OLD_SDL, test "x${ac_cv_my_have_old_sdl}" = xyes) | |||||
| ]) | |||||
| # LOL_AC_CHECK_SDL_INNER() | |||||
| # ------------------------ | |||||
| AC_DEFUN([LOL_AC_CHECK_SDL_INNER], | |||||
| [ | |||||
| dnl Find which version of SDL to use (always required on Linux or Win32) | dnl Find which version of SDL to use (always required on Linux or Win32) | ||||
| dnl | dnl | ||||
| dnl Defined C/C++ macros: | dnl Defined C/C++ macros: | ||||
| @@ -169,27 +182,22 @@ if test "x${ac_cv_my_have_sdl}" = xno; then | |||||
| else | else | ||||
| AC_DEFINE(LOL_USE_SDL, 1, Define to 1 to use SDL) | AC_DEFINE(LOL_USE_SDL, 1, Define to 1 to use SDL) | ||||
| fi | fi | ||||
| AM_CONDITIONAL(LOL_USE_SDL, test "x${ac_cv_my_have_sdl}" = xyes) | |||||
| if test "x${ac_cv_my_have_sdl_mixer}" = xno; then | if test "x${ac_cv_my_have_sdl_mixer}" = xno; then | ||||
| AC_MSG_WARN([SDL_mixer not found]) | AC_MSG_WARN([SDL_mixer not found]) | ||||
| else | else | ||||
| AC_DEFINE(LOL_USE_SDL_MIXER, 1, Define to 1 to use SDL_mixer) | AC_DEFINE(LOL_USE_SDL_MIXER, 1, Define to 1 to use SDL_mixer) | ||||
| fi | fi | ||||
| AM_CONDITIONAL(LOL_USE_SDL_MIXER, test "x${ac_cv_my_have_sdl_mixer}" = xyes) | |||||
| if test "x${ac_cv_my_have_sdl_image}" = xno; then | if test "x${ac_cv_my_have_sdl_image}" = xno; then | ||||
| AC_MSG_WARN([SDL_image not found]) | AC_MSG_WARN([SDL_image not found]) | ||||
| else | else | ||||
| AC_DEFINE(LOL_USE_SDL_IMAGE, 1, Define to 1 to use SDL_image) | AC_DEFINE(LOL_USE_SDL_IMAGE, 1, Define to 1 to use SDL_image) | ||||
| fi | fi | ||||
| AM_CONDITIONAL(LOL_USE_SDL_IMAGE, test "x${ac_cv_my_have_sdl_image}" = xyes) | |||||
| if test "x${ac_cv_my_have_old_sdl}" != xno; then | if test "x${ac_cv_my_have_old_sdl}" != xno; then | ||||
| AC_DEFINE(LOL_USE_OLD_SDL, 1, Define to 1 to use SDL) | AC_DEFINE(LOL_USE_OLD_SDL, 1, Define to 1 to use SDL) | ||||
| fi | fi | ||||
| AM_CONDITIONAL(LOL_USE_OLD_SDL, test "x${ac_cv_my_have_old_sdl}" = xyes) | |||||
| ]) # LOL_AC_CHECK_SDL | |||||
| ]) # LOL_AC_CHECK_SDL_INNER | |||||
| @@ -80,6 +80,11 @@ AC_ARG_ENABLE(experimental, | |||||
| AC_ARG_ENABLE(subproject, | AC_ARG_ENABLE(subproject, | ||||
| [ --enable-subproject build as a subproject (default no)]) | [ --enable-subproject build as a subproject (default no)]) | ||||
| AC_ARG_ENABLE(ffmpeg, | |||||
| [ --enable-ffmpeg build using FFmpeg (default autodetected)]) | |||||
| AC_ARG_ENABLE(sdl, | |||||
| [ --enable-sdl build using SDL (default autodetected)]) | |||||
| AC_ARG_ENABLE(test, | AC_ARG_ENABLE(test, | ||||
| [ --enable-test build test suite (default yes)]) | [ --enable-test build test suite (default yes)]) | ||||
| AC_ARG_ENABLE(tools, | AC_ARG_ENABLE(tools, | ||||
| @@ -140,9 +140,11 @@ liblol_core_sources = \ | |||||
| debug/fps.cpp debug/fps.h debug/lines.cpp \ | debug/fps.cpp debug/fps.h debug/lines.cpp \ | ||||
| debug/record.cpp debug/record.h debug/stats.cpp debug/stats.h | debug/record.cpp debug/record.h debug/stats.cpp debug/stats.h | ||||
| if LOL_USE_SDL | |||||
| sdl_sources = \ | sdl_sources = \ | ||||
| platform/sdl/sdlapp.cpp platform/sdl/sdlapp.h \ | platform/sdl/sdlapp.cpp platform/sdl/sdlapp.h \ | ||||
| platform/sdl/sdlinput.cpp platform/sdl/sdlinput.h | platform/sdl/sdlinput.cpp platform/sdl/sdlinput.h | ||||
| endif | |||||
| d3d9_sources = \ | d3d9_sources = \ | ||||
| platform/d3d9/d3d9input.cpp platform/d3d9/d3d9input.h | platform/d3d9/d3d9input.cpp platform/d3d9/d3d9input.h | ||||
| @@ -32,6 +32,32 @@ | |||||
| namespace lol | namespace lol | ||||
| { | { | ||||
| class null_display | |||||
| { | |||||
| friend class ApplicationDisplayData; | |||||
| public: | |||||
| null_display(char const *, ivec2) {} | |||||
| virtual ~null_display() {} | |||||
| protected: | |||||
| void SetResolution(ivec2) {} | |||||
| void SetPosition(ivec2) {} | |||||
| void Enable() {} | |||||
| void Disable() {} | |||||
| }; | |||||
| class null_app | |||||
| { | |||||
| public: | |||||
| null_app(char const *, ivec2, float) {} | |||||
| virtual ~null_app() {} | |||||
| void ShowPointer(bool) {} | |||||
| void Tick() {} | |||||
| }; | |||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
| class ApplicationDisplayData | class ApplicationDisplayData | ||||
| { | { | ||||
| @@ -69,7 +95,7 @@ protected: | |||||
| /* FIXME: this macro is only deactivated if we include "lolgl.h" */ | /* FIXME: this macro is only deactivated if we include "lolgl.h" */ | ||||
| //NOT HANDLED YET | //NOT HANDLED YET | ||||
| #else | #else | ||||
| # error No application class available on this platform | |||||
| null_display display; | |||||
| #endif | #endif | ||||
| }; | }; | ||||
| @@ -129,7 +155,7 @@ class ApplicationData | |||||
| /* FIXME: this macro is only deactivated if we include "lolgl.h" */ | /* FIXME: this macro is only deactivated if we include "lolgl.h" */ | ||||
| EglApp app; | EglApp app; | ||||
| #else | #else | ||||
| # error No application class available on this platform | |||||
| null_app app; | |||||
| #endif | #endif | ||||
| }; | }; | ||||