@@ -443,6 +443,19 @@ fi | |||
AM_CONDITIONAL(USE_IMLIB2, test "${ac_cv_my_have_imlib2}" = "yes") | |||
# 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([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_DEFINE(USE_FFMPEG, 1, Define to 1 to use FFmpeg) | |||
LOL_CFLAGS="${LOL_CFLAGS} ${LIBAVFORMAT_CFLAGS} ${LIBAVCODEC_CFLAGS} ${CFLAGSWSCALE_LIBS}" | |||
LOL_LIBS="${LOL_LIBS} ${LIBAVFORMAT_LIBS} ${LIBAVCODEC_LIBS} ${LIBSWSCALE_LIBS}" | |||
fi | |||
AM_CONDITIONAL(USE_FFMPEG, test "${ac_cv_my_have_ffmpeg}" != "no") | |||
dnl Use GTK+? (required for the deushax editor) | |||
ac_cv_my_have_gtkgl="no" | |||
PKG_CHECK_MODULES(GTK, gtk+-2.0, [ac_cv_my_have_gtkgl="yes"], [:]) | |||
@@ -37,8 +37,8 @@ liblolcore_headers = \ | |||
\ | |||
lol/base/all.h \ | |||
lol/base/avl_tree.h lol/base/features.h lol/base/tuple.h lol/base/types.h \ | |||
lol/base/array.h lol/base/assert.h lol/base/string.h lol/base/hash.h lol/base/map.h \ | |||
lol/base/enum.h lol/base/log.h \ | |||
lol/base/array.h lol/base/assert.h lol/base/string.h lol/base/hash.h \ | |||
lol/base/map.h lol/base/enum.h lol/base/log.h \ | |||
\ | |||
lol/math/all.h \ | |||
lol/math/functions.h lol/math/vector.h lol/math/half.h lol/math/real.h \ | |||
@@ -53,7 +53,7 @@ liblolcore_headers = \ | |||
lol/sys/init.h lol/sys/file.h lol/sys/thread.h lol/sys/timer.h \ | |||
\ | |||
lol/image/all.h \ | |||
lol/image/pixel.h lol/image/color.h lol/image/image.h \ | |||
lol/image/pixel.h lol/image/color.h lol/image/image.h lol/image/movie.h \ | |||
\ | |||
lol/gpu/all.h \ | |||
lol/gpu/shader.h lol/gpu/indexbuffer.h lol/gpu/vertexbuffer.h \ | |||
@@ -122,6 +122,7 @@ liblolcore_sources = \ | |||
image/dither/ostromoukhov.cpp image/dither/ordered.cpp \ | |||
image/filter/convolution.cpp image/filter/color.cpp \ | |||
image/filter/dilate.cpp image/filter/median.cpp image/filter/yuv.cpp \ | |||
image/movie.cpp \ | |||
\ | |||
loldebug.h \ | |||
debug/fps.cpp debug/fps.h debug/lines.cpp \ | |||
@@ -0,0 +1,69 @@ | |||
// | |||
// Lol Engine | |||
// | |||
// Copyright: (c) 2010-2014 Sam Hocevar <sam@hocevar.net> | |||
// This program is free software; you can redistribute it and/or | |||
// modify it under the terms of the Do What The Fuck You Want To | |||
// Public License, Version 2, as published by Sam Hocevar. See | |||
// http://www.wtfpl.net/ for more details. | |||
// | |||
#include <lol/engine-internal.h> | |||
#if USE_FFMPEG | |||
extern "C" | |||
{ | |||
# include <libavformat/avformat.h> | |||
} | |||
#endif | |||
namespace lol | |||
{ | |||
#if USE_FFMPEG | |||
static bool g_ready = false; | |||
#endif | |||
class MovieData | |||
{ | |||
#if USE_FFMPEG | |||
#endif | |||
friend class Movie; | |||
}; | |||
/* | |||
* Public Movie class | |||
*/ | |||
Movie::Movie(String const &name, ivec2 size, float fps) | |||
: m_data(new MovieData()) | |||
{ | |||
#if USE_FFMPEG | |||
if (!g_ready) | |||
{ | |||
g_ready = true; | |||
av_register_all(); | |||
} | |||
#endif | |||
} | |||
Movie::~Movie() | |||
{ | |||
#if USE_FFMPEG | |||
#endif | |||
delete m_data; | |||
} | |||
void Movie::Feed(Image const &image) | |||
{ | |||
#if USE_FFMPEG | |||
#endif | |||
} | |||
} /* namespace lol */ | |||
@@ -13,4 +13,5 @@ | |||
#include <lol/image/pixel.h> | |||
#include <lol/image/color.h> | |||
#include <lol/image/image.h> | |||
#include <lol/image/movie.h> | |||
@@ -0,0 +1,42 @@ | |||
// | |||
// Lol Engine | |||
// | |||
// Copyright: (c) 2010-2014 Sam Hocevar <sam@hocevar.net> | |||
// This program is free software; you can redistribute it and/or | |||
// modify it under the terms of the Do What The Fuck You Want To | |||
// Public License, Version 2, as published by Sam Hocevar. See | |||
// http://www.wtfpl.net/ for more details. | |||
// | |||
#pragma once | |||
// | |||
// The Movie class | |||
// --------------- | |||
// | |||
#include <lol/image/movie.h> | |||
namespace lol | |||
{ | |||
class Movie | |||
{ | |||
public: | |||
Movie(String const &name, ivec2 size, float fps); | |||
/* TODO: Rule of three */ | |||
#if 0 | |||
Movie(Movie const &other); | |||
Movie & operator =(Movie other); | |||
#endif | |||
~Movie(); | |||
void Feed(Image const &image); | |||
private: | |||
class MovieData *m_data; | |||
}; | |||
} /* namespace lol */ | |||
@@ -164,6 +164,7 @@ | |||
<ClCompile Include="image\combine.cpp" /> | |||
<ClCompile Include="image\image.cpp" /> | |||
<ClCompile Include="image\kernel.cpp" /> | |||
<ClCompile Include="image\movie.cpp" /> | |||
<ClCompile Include="image\noise.cpp" /> | |||
<ClCompile Include="image\pixel.cpp" /> | |||
<ClCompile Include="image\resample.cpp" /> | |||
@@ -320,6 +321,7 @@ | |||
<ClInclude Include="lol\image\all.h" /> | |||
<ClInclude Include="lol\image\color.h" /> | |||
<ClInclude Include="lol\image\image.h" /> | |||
<ClInclude Include="lol\image\movie.h" /> | |||
<ClInclude Include="lol\image\pixel.h" /> | |||
<ClInclude Include="lol\math\all.h" /> | |||
<ClInclude Include="lol\math\array2d.h" /> | |||
@@ -105,6 +105,9 @@ | |||
<ClCompile Include="debug\fps.cpp"> | |||
<Filter>debug</Filter> | |||
</ClCompile> | |||
<ClCompile Include="image\movie.cpp"> | |||
<Filter>image</Filter> | |||
</ClCompile> | |||
<ClCompile Include="debug\record.cpp"> | |||
<Filter>debug</Filter> | |||
</ClCompile> | |||
@@ -735,6 +738,9 @@ | |||
<ClInclude Include="lol\image\pixel.h"> | |||
<Filter>lol\image</Filter> | |||
</ClInclude> | |||
<ClInclude Include="lol\image\movie.h"> | |||
<Filter>lol\image</Filter> | |||
</ClInclude> | |||
<ClInclude Include="input\keys.h"> | |||
<Filter>input</Filter> | |||
</ClInclude> | |||