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") | |||
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? | |||
LOL_TRY_CXXFLAGS(-mwindows -mwin32, | |||
[AM_CXXFLAGS="${AM_CXXFLAGS} -mwindows -mwin32" | |||
@@ -223,6 +196,7 @@ LOL_TRY_LDFLAGS(-framework UIKit, | |||
dnl Other complex checks | |||
LOL_AC_CHECK_OPENGL() | |||
LOL_AC_CHECK_SDL() | |||
LOL_AC_CHECK_FFMPEG() | |||
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], | |||
[ | |||
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 | |||
dnl Defined C/C++ macros: | |||
@@ -169,27 +182,22 @@ if test "x${ac_cv_my_have_sdl}" = xno; then | |||
else | |||
AC_DEFINE(LOL_USE_SDL, 1, Define to 1 to use SDL) | |||
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 | |||
AC_MSG_WARN([SDL_mixer not found]) | |||
else | |||
AC_DEFINE(LOL_USE_SDL_MIXER, 1, Define to 1 to use SDL_mixer) | |||
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 | |||
AC_MSG_WARN([SDL_image not found]) | |||
else | |||
AC_DEFINE(LOL_USE_SDL_IMAGE, 1, Define to 1 to use SDL_image) | |||
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 | |||
AC_DEFINE(LOL_USE_OLD_SDL, 1, Define to 1 to use SDL) | |||
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, | |||
[ --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, | |||
[ --enable-test build test suite (default yes)]) | |||
AC_ARG_ENABLE(tools, | |||
@@ -140,9 +140,11 @@ liblol_core_sources = \ | |||
debug/fps.cpp debug/fps.h debug/lines.cpp \ | |||
debug/record.cpp debug/record.h debug/stats.cpp debug/stats.h | |||
if LOL_USE_SDL | |||
sdl_sources = \ | |||
platform/sdl/sdlapp.cpp platform/sdl/sdlapp.h \ | |||
platform/sdl/sdlinput.cpp platform/sdl/sdlinput.h | |||
endif | |||
d3d9_sources = \ | |||
platform/d3d9/d3d9input.cpp platform/d3d9/d3d9input.h | |||
@@ -32,6 +32,32 @@ | |||
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 | |||
{ | |||
@@ -69,7 +95,7 @@ protected: | |||
/* FIXME: this macro is only deactivated if we include "lolgl.h" */ | |||
//NOT HANDLED YET | |||
#else | |||
# error No application class available on this platform | |||
null_display display; | |||
#endif | |||
}; | |||
@@ -129,7 +155,7 @@ class ApplicationData | |||
/* FIXME: this macro is only deactivated if we include "lolgl.h" */ | |||
EglApp app; | |||
#else | |||
# error No application class available on this platform | |||
null_app app; | |||
#endif | |||
}; | |||