Add macro-based pimpl & use it everywhere
This commit is contained in:
parent
b861cc60ff
commit
08c62d6e3f
6 changed files with 27 additions and 16 deletions
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
#include <psemek/app/scene.hpp>
|
#include <psemek/app/scene.hpp>
|
||||||
|
|
||||||
|
#include <psemek/util/pimpl.hpp>
|
||||||
|
|
||||||
#include <SDL2/SDL_keycode.h>
|
#include <SDL2/SDL_keycode.h>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
@ -37,10 +39,7 @@ namespace psemek::app
|
||||||
int height() const;
|
int height() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct impl;
|
psemek_declare_pimpl
|
||||||
std::unique_ptr<impl> pimpl_;
|
|
||||||
struct impl & impl() { return *pimpl_; }
|
|
||||||
struct impl const & impl() const { return *pimpl_; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,4 @@ file(GLOB_RECURSE PSEMEK_AUDIO_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "s
|
||||||
|
|
||||||
add_library(psemek-audio ${PSEMEK_AUDIO_HEADERS} ${PSEMEK_AUDIO_SOURCES})
|
add_library(psemek-audio ${PSEMEK_AUDIO_HEADERS} ${PSEMEK_AUDIO_SOURCES})
|
||||||
target_include_directories(psemek-audio PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
target_include_directories(psemek-audio PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||||
target_link_libraries(psemek-audio PUBLIC psemek-sdl2 psemek-log SDL2_mixer)
|
target_link_libraries(psemek-audio PUBLIC psemek-sdl2 psemek-util psemek-log SDL2_mixer)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@
|
||||||
#include <psemek/audio/stream.hpp>
|
#include <psemek/audio/stream.hpp>
|
||||||
#include <psemek/audio/track.hpp>
|
#include <psemek/audio/track.hpp>
|
||||||
|
|
||||||
|
#include <psemek/util/pimpl.hpp>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string_view>
|
#include <string_view>
|
||||||
|
|
||||||
|
|
@ -35,10 +37,7 @@ namespace psemek::audio
|
||||||
std::shared_ptr<stream> play(std::shared_ptr<track> s, bool start = true, bool loop = false);
|
std::shared_ptr<stream> play(std::shared_ptr<track> s, bool start = true, bool loop = false);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct impl;
|
psemek_declare_shared_pimpl
|
||||||
std::shared_ptr<impl> pimpl_;
|
|
||||||
struct impl & impl() { return *pimpl_; }
|
|
||||||
struct impl const & impl() const { return *pimpl_; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,14 @@
|
||||||
|
|
||||||
#include <psemek/gfx/color.hpp>
|
#include <psemek/gfx/color.hpp>
|
||||||
#include <psemek/gfx/texture.hpp>
|
#include <psemek/gfx/texture.hpp>
|
||||||
|
|
||||||
#include <psemek/geom/vector.hpp>
|
#include <psemek/geom/vector.hpp>
|
||||||
#include <psemek/geom/point.hpp>
|
#include <psemek/geom/point.hpp>
|
||||||
#include <psemek/geom/matrix.hpp>
|
#include <psemek/geom/matrix.hpp>
|
||||||
#include <psemek/geom/box.hpp>
|
#include <psemek/geom/box.hpp>
|
||||||
|
|
||||||
|
#include <psemek/util/pimpl.hpp>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
|
@ -70,9 +73,7 @@ namespace psemek::gfx
|
||||||
void render(geom::matrix<float, 4, 4> const & transform);
|
void render(geom::matrix<float, 4, 4> const & transform);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct impl;
|
psemek_declare_pimpl
|
||||||
std::unique_ptr<impl> pimpl_;
|
|
||||||
struct impl & impl() { return *pimpl_; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,11 @@
|
||||||
#include <psemek/gfx/drawable.hpp>
|
#include <psemek/gfx/drawable.hpp>
|
||||||
#include <psemek/gfx/color.hpp>
|
#include <psemek/gfx/color.hpp>
|
||||||
#include <psemek/gfx/texture.hpp>
|
#include <psemek/gfx/texture.hpp>
|
||||||
|
|
||||||
#include <psemek/geom/matrix.hpp>
|
#include <psemek/geom/matrix.hpp>
|
||||||
|
|
||||||
|
#include <psemek/util/pimpl.hpp>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
|
@ -48,10 +51,7 @@ namespace psemek::gfx
|
||||||
void render(render_options const & opts);
|
void render(render_options const & opts);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct impl;
|
psemek_declare_pimpl
|
||||||
std::unique_ptr<struct impl> pimpl_;
|
|
||||||
struct impl & impl() { return *pimpl_; }
|
|
||||||
struct impl const & impl() const { return *pimpl_; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,18 @@
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
#define psemek_declare_pimpl \
|
||||||
|
struct impl; \
|
||||||
|
std::unique_ptr<struct impl> pimpl_; \
|
||||||
|
struct impl & impl() { return *pimpl_; } \
|
||||||
|
struct impl const & impl() const { return *pimpl_; }
|
||||||
|
|
||||||
|
#define psemek_declare_shared_pimpl \
|
||||||
|
struct impl; \
|
||||||
|
std::shared_ptr<struct impl> pimpl_; \
|
||||||
|
struct impl & impl() { return *pimpl_; } \
|
||||||
|
struct impl const & impl() const { return *pimpl_; }
|
||||||
|
|
||||||
namespace psemek::util::pimpl
|
namespace psemek::util::pimpl
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue