Cleanup to reduce includes of device.h header file
parent
2a529ae07f
commit
cac34e259b
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "common/system/system.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/engine/engine.h"
|
||||
#include "graphics/opengl33/glutil.h"
|
||||
|
||||
|
@ -115,7 +116,8 @@ CApplication::CApplication(CSystemUtils* systemUtils)
|
|||
m_configFile(std::make_unique<CConfigFile>()),
|
||||
m_input(std::make_unique<CInput>()),
|
||||
m_pathManager(std::make_unique<CPathManager>(systemUtils)),
|
||||
m_modManager(std::make_unique<CModManager>(this, m_pathManager.get()))
|
||||
m_modManager(std::make_unique<CModManager>(this, m_pathManager.get())),
|
||||
m_deviceConfig(std::make_unique<Gfx::DeviceConfig>())
|
||||
{
|
||||
m_exitCode = 0;
|
||||
m_active = false;
|
||||
|
@ -427,8 +429,8 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[])
|
|||
std::getline(resolution, w, 'x');
|
||||
std::getline(resolution, h, 'x');
|
||||
|
||||
m_deviceConfig.size.x = atoi(w.c_str());
|
||||
m_deviceConfig.size.y = atoi(h.c_str());
|
||||
m_deviceConfig->size.x = atoi(w.c_str());
|
||||
m_deviceConfig->size.y = atoi(h.c_str());
|
||||
m_resolutionOverride = true;
|
||||
break;
|
||||
}
|
||||
|
@ -615,7 +617,7 @@ bool CApplication::Create()
|
|||
{
|
||||
if (it->x == w && it->y == h)
|
||||
{
|
||||
m_deviceConfig.size = *it;
|
||||
m_deviceConfig->size = *it;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -623,7 +625,7 @@ bool CApplication::Create()
|
|||
|
||||
if ( GetConfigFile().GetIntProperty("Setup", "Fullscreen", iValue) && !m_resolutionOverride )
|
||||
{
|
||||
m_deviceConfig.fullScreen = (iValue == 1);
|
||||
m_deviceConfig->fullScreen = (iValue == 1);
|
||||
}
|
||||
|
||||
if (! CreateVideoSurface())
|
||||
|
@ -673,14 +675,14 @@ bool CApplication::Create()
|
|||
graphics = value;
|
||||
}
|
||||
|
||||
m_device = Gfx::CreateDevice(m_deviceConfig, graphics.c_str());
|
||||
m_device = Gfx::CreateDevice(*m_deviceConfig, graphics.c_str());
|
||||
|
||||
if (m_device == nullptr)
|
||||
{
|
||||
GetLogger()->Error("Unknown graphics device: %s\n", graphics.c_str());
|
||||
GetLogger()->Info("Changing to default device\n");
|
||||
m_systemUtils->SystemDialog(SystemDialogType::ERROR_MSG, "Graphics initialization error", "You have selected invalid graphics device with -graphics switch. Game will use default OpenGL device instead.");
|
||||
m_device = Gfx::CreateDevice(m_deviceConfig, "opengl");
|
||||
m_device = Gfx::CreateDevice(*m_deviceConfig, "opengl");
|
||||
}
|
||||
}
|
||||
//else
|
||||
|
@ -747,23 +749,23 @@ bool CApplication::CreateVideoSurface()
|
|||
{
|
||||
Uint32 videoFlags = SDL_WINDOW_OPENGL;
|
||||
|
||||
if (m_deviceConfig.fullScreen)
|
||||
if (m_deviceConfig->fullScreen)
|
||||
videoFlags |= SDL_WINDOW_FULLSCREEN;
|
||||
|
||||
if (m_deviceConfig.resizeable)
|
||||
if (m_deviceConfig->resizeable)
|
||||
videoFlags |= SDL_WINDOW_RESIZABLE;
|
||||
|
||||
// Set OpenGL attributes
|
||||
|
||||
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, m_deviceConfig.redSize);
|
||||
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, m_deviceConfig.greenSize);
|
||||
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, m_deviceConfig.blueSize);
|
||||
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, m_deviceConfig.alphaSize);
|
||||
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, m_deviceConfig->redSize);
|
||||
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, m_deviceConfig->greenSize);
|
||||
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, m_deviceConfig->blueSize);
|
||||
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, m_deviceConfig->alphaSize);
|
||||
|
||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, m_deviceConfig.depthSize);
|
||||
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, m_deviceConfig.stencilSize);
|
||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, m_deviceConfig->depthSize);
|
||||
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, m_deviceConfig->stencilSize);
|
||||
|
||||
if (m_deviceConfig.doubleBuf)
|
||||
if (m_deviceConfig->doubleBuf)
|
||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||
|
||||
std::string value;
|
||||
|
@ -848,12 +850,12 @@ bool CApplication::CreateVideoSurface()
|
|||
|
||||
/* If hardware acceleration specifically requested, this will force the hw accel
|
||||
and fail with error if not available */
|
||||
if (m_deviceConfig.hardwareAccel)
|
||||
if (m_deviceConfig->hardwareAccel)
|
||||
SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1);
|
||||
|
||||
m_private->window = SDL_CreateWindow(m_windowTitle.c_str(),
|
||||
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
|
||||
m_deviceConfig.size.x, m_deviceConfig.size.y,
|
||||
m_deviceConfig->size.x, m_deviceConfig->size.y,
|
||||
videoFlags);
|
||||
|
||||
m_private->glcontext = SDL_GL_CreateContext(m_private->window);
|
||||
|
@ -900,15 +902,15 @@ void CApplication::TryToSetVSync()
|
|||
|
||||
bool CApplication::ChangeVideoConfig(const Gfx::DeviceConfig &newConfig)
|
||||
{
|
||||
m_deviceConfig = newConfig;
|
||||
*m_deviceConfig = newConfig;
|
||||
|
||||
// TODO: Somehow this doesn't work for maximized windows (at least on Ubuntu)
|
||||
SDL_SetWindowSize(m_private->window, m_deviceConfig.size.x, m_deviceConfig.size.y);
|
||||
SDL_SetWindowFullscreen(m_private->window, m_deviceConfig.fullScreen ? SDL_WINDOW_FULLSCREEN : 0);
|
||||
SDL_SetWindowSize(m_private->window, m_deviceConfig->size.x, m_deviceConfig->size.y);
|
||||
SDL_SetWindowFullscreen(m_private->window, m_deviceConfig->fullScreen ? SDL_WINDOW_FULLSCREEN : 0);
|
||||
|
||||
TryToSetVSync();
|
||||
|
||||
m_device->ConfigChanged(m_deviceConfig);
|
||||
m_device->ConfigChanged(*m_deviceConfig);
|
||||
|
||||
m_eventQueue->AddEvent(Event(EVENT_RESOLUTION_CHANGED));
|
||||
|
||||
|
@ -1238,10 +1240,10 @@ Event CApplication::ProcessSystemEvent()
|
|||
{
|
||||
if (m_private->currentEvent.window.event == SDL_WINDOWEVENT_SIZE_CHANGED)
|
||||
{
|
||||
Gfx::DeviceConfig newConfig = m_deviceConfig;
|
||||
Gfx::DeviceConfig newConfig = *m_deviceConfig;
|
||||
newConfig.size.x = m_private->currentEvent.window.data1;
|
||||
newConfig.size.y = m_private->currentEvent.window.data2;
|
||||
if (newConfig.size != m_deviceConfig.size)
|
||||
if (newConfig.size != m_deviceConfig->size)
|
||||
ChangeVideoConfig(newConfig);
|
||||
}
|
||||
|
||||
|
@ -1496,7 +1498,7 @@ void CApplication::Render()
|
|||
CProfiler::StopPerformanceCounter(PCNT_RENDER_ALL);
|
||||
|
||||
CProfiler::StartPerformanceCounter(PCNT_SWAP_BUFFERS);
|
||||
if (m_deviceConfig.doubleBuf)
|
||||
if (m_deviceConfig->doubleBuf)
|
||||
SDL_GL_SwapWindow(m_private->window);
|
||||
CProfiler::StopPerformanceCounter(PCNT_SWAP_BUFFERS);
|
||||
}
|
||||
|
@ -1648,9 +1650,9 @@ long long CApplication::GetRealRelTime() const
|
|||
return m_realRelTime;
|
||||
}
|
||||
|
||||
Gfx::DeviceConfig CApplication::GetVideoConfig() const
|
||||
const Gfx::DeviceConfig& CApplication::GetVideoConfig() const
|
||||
{
|
||||
return m_deviceConfig;
|
||||
return *m_deviceConfig;
|
||||
}
|
||||
|
||||
std::vector<glm::ivec2> CApplication::GetVideoResolutionList(int display) const
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include "common/singleton.h"
|
||||
#include "common/system/system.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
|
||||
#include "level/level_category.h"
|
||||
|
||||
#include <glm/glm.hpp>
|
||||
|
@ -51,6 +49,7 @@ class CSystemUtils;
|
|||
|
||||
namespace Gfx
|
||||
{
|
||||
class CDevice;
|
||||
class CEngine;
|
||||
struct DeviceConfig;
|
||||
}
|
||||
|
@ -188,7 +187,7 @@ public:
|
|||
std::vector<glm::ivec2> GetVideoResolutionList(int display = 0) const;
|
||||
|
||||
//! Returns the current video mode
|
||||
Gfx::DeviceConfig GetVideoConfig() const;
|
||||
const Gfx::DeviceConfig& GetVideoConfig() const;
|
||||
|
||||
//! Change the video mode to given mode
|
||||
bool ChangeVideoConfig(const Gfx::DeviceConfig &newConfig);
|
||||
|
@ -348,7 +347,7 @@ protected:
|
|||
std::string m_errorMessage;
|
||||
|
||||
//! Current configuration of OpenGL display device
|
||||
Gfx::DeviceConfig m_deviceConfig;
|
||||
std::unique_ptr<Gfx::DeviceConfig> m_deviceConfig;
|
||||
|
||||
//! Text set as window title
|
||||
std::string m_windowTitle;
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "common/config_file.h"
|
||||
#include "common/logger.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/engine/camera.h"
|
||||
#include "graphics/engine/engine.h"
|
||||
|
||||
|
|
|
@ -58,6 +58,7 @@ struct VertexCol;
|
|||
struct Vertex3D;
|
||||
|
||||
enum class CullFace : unsigned char;
|
||||
enum class PrimitiveType : unsigned char;
|
||||
enum class TransparencyMode : unsigned char;
|
||||
|
||||
/**
|
||||
|
@ -142,21 +143,6 @@ enum class FillMode : unsigned char
|
|||
POLY
|
||||
};
|
||||
|
||||
/**
|
||||
* \enum PrimitiveType
|
||||
* \brief Type of primitive to render
|
||||
*/
|
||||
enum class PrimitiveType : unsigned char
|
||||
{
|
||||
POINTS,
|
||||
LINES,
|
||||
LINE_STRIP,
|
||||
LINE_LOOP,
|
||||
TRIANGLES,
|
||||
TRIANGLE_STRIP,
|
||||
TRIANGLE_FAN
|
||||
};
|
||||
|
||||
/**
|
||||
* \enum FrustumPlane
|
||||
* \brief Planes of frustum space
|
||||
|
|
|
@ -34,10 +34,24 @@ namespace Gfx
|
|||
|
||||
class CVertexBuffer;
|
||||
enum class CullFace : unsigned char;
|
||||
enum class PrimitiveType : unsigned char;
|
||||
enum class TransparencyMode : unsigned char;
|
||||
struct Texture;
|
||||
|
||||
/**
|
||||
* \enum PrimitiveType
|
||||
* \brief Type of primitive to render
|
||||
*/
|
||||
enum class PrimitiveType : unsigned char
|
||||
{
|
||||
POINTS,
|
||||
LINES,
|
||||
LINE_STRIP,
|
||||
LINE_LOOP,
|
||||
TRIANGLES,
|
||||
TRIANGLE_STRIP,
|
||||
TRIANGLE_FAN,
|
||||
};
|
||||
|
||||
struct ShadowParam
|
||||
{
|
||||
glm::mat4 matrix;
|
||||
|
|
|
@ -39,18 +39,18 @@ namespace Gfx
|
|||
* \enum TexImgFormat
|
||||
* \brief Format of image data
|
||||
*/
|
||||
enum TexImgFormat
|
||||
enum class TexImgFormat : unsigned char
|
||||
{
|
||||
//! Try to determine automatically (may not work)
|
||||
TEX_IMG_AUTO,
|
||||
AUTO,
|
||||
//! RGB triplet, 3 bytes
|
||||
TEX_IMG_RGB,
|
||||
RGB,
|
||||
//! BGR triplet, 3 bytes
|
||||
TEX_IMG_BGR,
|
||||
BGR,
|
||||
//! RGBA triplet, 4 bytes
|
||||
TEX_IMG_RGBA,
|
||||
RGBA,
|
||||
//! BGRA triplet, 4 bytes
|
||||
TEX_IMG_BGRA
|
||||
BGRA,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -157,7 +157,7 @@ struct TextureCreateParams
|
|||
//! Whether to generate mipmaps
|
||||
bool mipmap = false;
|
||||
//! Format of source image data
|
||||
TexImgFormat format = TEX_IMG_RGB;
|
||||
TexImgFormat format = TexImgFormat::RGB;
|
||||
//! General texture filtering mode
|
||||
TexFilter filter = TEX_FILTER_NEAREST;
|
||||
//! Pad the image to nearest power of 2 dimensions
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
|
||||
#include "graphics/engine/cloud.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/material.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
@ -111,8 +110,7 @@ void CCloud::Draw()
|
|||
float fogStart = deep*0.15f;
|
||||
float fogEnd = deep*0.24f;
|
||||
|
||||
CDevice* device = m_engine->GetDevice();
|
||||
auto renderer = device->GetObjectRenderer();
|
||||
auto renderer = m_engine->GetObjectRenderer();
|
||||
renderer->Begin();
|
||||
|
||||
auto fogColor = m_engine->GetFogColor(m_engine->GetRankView());
|
||||
|
|
|
@ -276,10 +276,10 @@ CEngine::CEngine(CApplication *app, CSystemUtils* systemUtils)
|
|||
|
||||
m_shadowColor = 0.5f;
|
||||
|
||||
m_defaultTexParams.format = TEX_IMG_AUTO;
|
||||
m_defaultTexParams.format = TexImgFormat::AUTO;
|
||||
m_defaultTexParams.filter = TEX_FILTER_BILINEAR;
|
||||
|
||||
m_terrainTexParams.format = TEX_IMG_AUTO;
|
||||
m_terrainTexParams.format = TexImgFormat::AUTO;
|
||||
m_terrainTexParams.filter = TEX_FILTER_BILINEAR;
|
||||
|
||||
// Compute bias matrix for shadow mapping
|
||||
|
@ -307,6 +307,16 @@ CDevice* CEngine::GetDevice()
|
|||
return m_device;
|
||||
}
|
||||
|
||||
CUIRenderer* CEngine::GetUIRenderer()
|
||||
{
|
||||
return m_device->GetUIRenderer();
|
||||
}
|
||||
|
||||
CObjectRenderer* CEngine::GetObjectRenderer()
|
||||
{
|
||||
return m_device->GetObjectRenderer();
|
||||
}
|
||||
|
||||
COldModelManager* CEngine::GetModelManager()
|
||||
{
|
||||
return m_modelManager.get();
|
||||
|
@ -408,7 +418,7 @@ bool CEngine::Create()
|
|||
Math::LoadOrthoProjectionMatrix(m_matProjInterface, 0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f);
|
||||
|
||||
TextureCreateParams params;
|
||||
params.format = TEX_IMG_AUTO;
|
||||
params.format = TexImgFormat::AUTO;
|
||||
params.filter = TEX_FILTER_NEAREST;
|
||||
params.mipmap = false;
|
||||
m_miceTexture = LoadTexture("textures/interface/mouse.png", params);
|
||||
|
@ -3168,7 +3178,7 @@ void CEngine::Capture3DScene()
|
|||
|
||||
TextureCreateParams params;
|
||||
params.filter = TEX_FILTER_BILINEAR;
|
||||
params.format = TEX_IMG_RGBA;
|
||||
params.format = TexImgFormat::RGBA;
|
||||
params.mipmap = false;
|
||||
|
||||
m_capturedWorldTexture = m_device->CreateTexture(&image, params);
|
||||
|
|
|
@ -56,6 +56,8 @@ namespace Gfx
|
|||
{
|
||||
|
||||
class CDevice;
|
||||
class CUIRenderer;
|
||||
class CObjectRenderer;
|
||||
class COldModelManager;
|
||||
class CLightManager;
|
||||
class CText;
|
||||
|
@ -436,6 +438,10 @@ public:
|
|||
void SetDevice(CDevice* device);
|
||||
//! Returns the current device
|
||||
CDevice* GetDevice();
|
||||
//! Returns the UI renderer
|
||||
CUIRenderer* GetUIRenderer();
|
||||
//! Returns the object renderer
|
||||
CObjectRenderer* GetObjectRenderer();
|
||||
|
||||
//! Returns the text rendering engine
|
||||
CText* GetText();
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include "common/resources/resourcemanager.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -178,7 +179,7 @@ public:
|
|||
{
|
||||
if (m_quads.empty()) return;
|
||||
|
||||
auto renderer = m_engine.GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine.GetUIRenderer();
|
||||
renderer->SetTexture(Texture{ m_texID });
|
||||
renderer->SetTransparency(m_transparency);
|
||||
|
||||
|
@ -1363,7 +1364,7 @@ CharTexture CText::CreateCharTexture(UTF8Char ch, CachedFont* font)
|
|||
|
||||
Texture tex;
|
||||
tex.id = texture.id;
|
||||
m_device->UpdateTexture(tex, texture.charPos, &imageData, TEX_IMG_RGBA);
|
||||
m_device->UpdateTexture(tex, texture.charPos, &imageData, TexImgFormat::RGBA);
|
||||
|
||||
imageData.surface = nullptr;
|
||||
|
||||
|
@ -1401,7 +1402,7 @@ FontTexture CText::CreateFontTexture(const glm::ivec2& tileSize)
|
|||
data.surface = textureSurface;
|
||||
|
||||
TextureCreateParams createParams;
|
||||
createParams.format = TEX_IMG_RGBA;
|
||||
createParams.format = TexImgFormat::RGBA;
|
||||
createParams.filter = TEX_FILTER_NEAREST;
|
||||
createParams.mipmap = false;
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
|
||||
#include "graphics/opengl33/glutil.h"
|
||||
|
||||
#include "graphics/core/renderers.h"
|
||||
|
||||
#include "graphics/opengl33/gl33_device.h"
|
||||
|
||||
#include "common/image.h"
|
||||
|
@ -489,7 +491,24 @@ GLint LinkProgram(const std::vector<GLint>& shaders)
|
|||
return program;
|
||||
}
|
||||
|
||||
std::unique_ptr<CGLFrameBufferPixels> GetGLFrameBufferPixels(const glm::ivec2& size)
|
||||
|
||||
class CGLFrameBufferPixels : public CFrameBufferPixels
|
||||
{
|
||||
public:
|
||||
CGLFrameBufferPixels(std::size_t size)
|
||||
: m_pixels(std::make_unique<GLubyte[]>(size))
|
||||
{}
|
||||
|
||||
void* GetPixelsData() override
|
||||
{
|
||||
return static_cast<void*>(m_pixels.get());
|
||||
}
|
||||
|
||||
private:
|
||||
std::unique_ptr<GLubyte[]> m_pixels;
|
||||
};
|
||||
|
||||
std::unique_ptr<CFrameBufferPixels> GetGLFrameBufferPixels(const glm::ivec2& size)
|
||||
{
|
||||
auto pixels = std::make_unique<CGLFrameBufferPixels>(4 * size.x * size.y);
|
||||
|
||||
|
@ -511,27 +530,27 @@ PreparedTextureData PrepareTextureData(ImageData* imageData, TexImgFormat format
|
|||
|
||||
texData.sourceFormat = 0;
|
||||
|
||||
if (format == TEX_IMG_RGB)
|
||||
if (format == TexImgFormat::RGB)
|
||||
{
|
||||
texData.sourceFormat = GL_RGB;
|
||||
texData.alpha = false;
|
||||
}
|
||||
else if (format == TEX_IMG_BGR)
|
||||
else if (format == TexImgFormat::BGR)
|
||||
{
|
||||
texData.sourceFormat = GL_BGR;
|
||||
texData.alpha = false;
|
||||
}
|
||||
else if (format == TEX_IMG_RGBA)
|
||||
else if (format == TexImgFormat::RGBA)
|
||||
{
|
||||
texData.sourceFormat = GL_RGBA;
|
||||
texData.alpha = true;
|
||||
}
|
||||
else if (format == TEX_IMG_BGRA)
|
||||
else if (format == TexImgFormat::BGRA)
|
||||
{
|
||||
texData.sourceFormat = GL_BGRA;
|
||||
texData.alpha = true;
|
||||
}
|
||||
else if (format == TEX_IMG_AUTO)
|
||||
else if (format == TexImgFormat::AUTO)
|
||||
{
|
||||
if (imageData->surface->format->BytesPerPixel == 4)
|
||||
{
|
||||
|
|
|
@ -22,8 +22,6 @@
|
|||
// config.h must be included first
|
||||
#include "common/config.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
|
||||
#include <GL/glew.h>
|
||||
#include <glm/glm.hpp>
|
||||
|
||||
|
@ -33,11 +31,20 @@
|
|||
|
||||
struct SDL_Surface;
|
||||
|
||||
class CImage;
|
||||
struct ImageData;
|
||||
|
||||
// Graphics module namespace
|
||||
namespace Gfx
|
||||
{
|
||||
|
||||
class CDevice;
|
||||
class CFrameBufferPixels;
|
||||
struct DeviceConfig;
|
||||
enum class PrimitiveType : unsigned char;
|
||||
enum class Type : unsigned char;
|
||||
enum class TexImgFormat : unsigned char;
|
||||
|
||||
bool InitializeGLEW();
|
||||
|
||||
//! Creates OpenGL device
|
||||
|
@ -94,22 +101,6 @@ struct PreparedTextureData
|
|||
|
||||
PreparedTextureData PrepareTextureData(ImageData* imageData, TexImgFormat format);
|
||||
|
||||
class CGLFrameBufferPixels : public CFrameBufferPixels
|
||||
{
|
||||
public:
|
||||
CGLFrameBufferPixels(std::size_t size)
|
||||
: m_pixels(std::make_unique<GLubyte[]>(size))
|
||||
{}
|
||||
|
||||
void* GetPixelsData() override
|
||||
{
|
||||
return static_cast<void*>(m_pixels.get());
|
||||
}
|
||||
|
||||
private:
|
||||
std::unique_ptr<GLubyte[]> m_pixels;
|
||||
};
|
||||
|
||||
std::unique_ptr<CGLFrameBufferPixels> GetGLFrameBufferPixels(const glm::ivec2& size);
|
||||
std::unique_ptr<CFrameBufferPixels> GetGLFrameBufferPixels(const glm::ivec2& size);
|
||||
|
||||
} // namespace Gfx
|
||||
|
|
|
@ -23,10 +23,9 @@
|
|||
#include "common/event.h"
|
||||
#include "common/restext.h"
|
||||
|
||||
#include "graphics/engine/engine.h"
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
#include "graphics/engine/engine.h"
|
||||
|
||||
|
||||
namespace Ui
|
||||
|
@ -144,8 +143,6 @@ void CButton::Draw()
|
|||
glm::vec2 pos, dim, uv1, uv2;
|
||||
float dp;
|
||||
|
||||
auto device = m_engine->GetDevice();
|
||||
|
||||
if ( (m_state & STATE_VISIBLE) == 0 ) return;
|
||||
|
||||
if ( m_state & STATE_WARNING ) // shading yellow-black?
|
||||
|
@ -172,7 +169,7 @@ void CButton::Draw()
|
|||
(m_state & STATE_CARD ) == 0 &&
|
||||
(m_state & STATE_SIMPLY) == 0 )
|
||||
{
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button2.png");
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "common/event.h"
|
||||
#include "common/restext.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -96,8 +95,7 @@ void CCheck::Draw()
|
|||
float zoomExt, zoomInt;
|
||||
int icon;
|
||||
|
||||
auto device = m_engine->GetDevice();
|
||||
auto renderer = device->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
if ( (m_state & STATE_VISIBLE) == 0 ) return;
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "common/event.h"
|
||||
#include "common/restext.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -136,7 +135,7 @@ void CColor::Draw()
|
|||
DrawShadow(m_pos, m_dim);
|
||||
}
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button1.png");
|
||||
renderer->SetTexture(texture);
|
||||
|
|
|
@ -456,7 +456,7 @@ void CControl::Draw()
|
|||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button1.png");
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
renderer->SetTransparency(Gfx::TransparencyMode::NONE);
|
||||
renderer->SetTexture(texture);
|
||||
|
||||
|
@ -613,7 +613,7 @@ void CControl::DrawIcon(const glm::vec2& pos, const glm::vec2& dim, const glm::v
|
|||
{
|
||||
glm::vec2 p1, p2, p3, p4;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
p1.x = pos.x;
|
||||
p1.y = pos.y;
|
||||
|
@ -684,7 +684,7 @@ void CControl::DrawIcon(const glm::vec2& pos, const glm::vec2& dim, const glm::v
|
|||
|
||||
glm::vec2 corner = cor;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
p1.x = pos.x;
|
||||
p1.y = pos.y;
|
||||
|
@ -756,7 +756,7 @@ void CControl::DrawWarning(const glm::vec2& position, const glm::vec2& dimension
|
|||
glm::vec2 uv1, uv2;
|
||||
float dp;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
glm::vec2 pos = position;
|
||||
glm::vec2 dim = dimension;
|
||||
|
@ -807,7 +807,7 @@ void CControl::DrawShadow(const glm::vec2& position, const glm::vec2& dimension,
|
|||
glm::vec2 uv1, uv2, corner;
|
||||
float dp;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
glm::vec2 pos = position;
|
||||
glm::vec2 dim = dimension;
|
||||
|
@ -869,7 +869,7 @@ int CControl::SetButtonTextureForIcon(int icon)
|
|||
int buttonFile = (icon/64) + 1;
|
||||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button" + StrUtils::ToString<int>(buttonFile) + ".png");
|
||||
m_engine->GetDevice()->GetUIRenderer()->SetTexture(texture);
|
||||
m_engine->GetUIRenderer()->SetTexture(texture);
|
||||
|
||||
return iconIdx;
|
||||
}
|
||||
|
|
|
@ -1182,16 +1182,16 @@ void CEdit::DrawImage(const glm::vec2& pos, std::string name, float width,
|
|||
glm::vec2 uv1, uv2, dim;
|
||||
float dp;
|
||||
|
||||
m_engine->GetDevice()->GetUIRenderer()->SetTransparency(Gfx::TransparencyMode::NONE);
|
||||
m_engine->GetUIRenderer()->SetTransparency(Gfx::TransparencyMode::NONE);
|
||||
//m_engine->SetState(Gfx::ENG_RSTATE_NORMAL);
|
||||
|
||||
Gfx::TextureCreateParams params;
|
||||
params.format = Gfx::TEX_IMG_AUTO;
|
||||
params.format = Gfx::TexImgFormat::AUTO;
|
||||
params.filter = Gfx::TEX_FILTER_BILINEAR;
|
||||
params.padToNearestPowerOfTwo = true;
|
||||
Gfx::Texture tex = m_engine->LoadTexture(PrepareImageFilename(name), params);
|
||||
|
||||
m_engine->GetDevice()->GetUIRenderer()->SetTexture(tex);
|
||||
m_engine->GetUIRenderer()->SetTexture(tex);
|
||||
|
||||
uv1.x = 0.0f;
|
||||
uv2.x = 1.0f;
|
||||
|
@ -1225,7 +1225,7 @@ void CEdit::DrawBack(const glm::vec2& pos, const glm::vec2& dim)
|
|||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button2.png");
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
renderer->SetTexture(texture);
|
||||
renderer->SetTransparency(Gfx::TransparencyMode::NONE);
|
||||
|
||||
|
@ -1271,7 +1271,7 @@ void CEdit::DrawBack(const glm::vec2& pos, const glm::vec2& dim)
|
|||
|
||||
void CEdit::DrawHorizontalGradient(const glm::vec2& pos, const glm::vec2& dim, Gfx::Color color1, Gfx::Color color2)
|
||||
{
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
renderer->SetTransparency(Gfx::TransparencyMode::NONE);
|
||||
|
||||
glm::vec2 p1, p2;
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
|
||||
#include "graphics/engine/engine.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -84,7 +83,7 @@ void CGauge::Draw()
|
|||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button2.png");
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
renderer->SetTexture(texture);
|
||||
renderer->SetTransparency(Gfx::TransparencyMode::NONE);
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "common/event.h"
|
||||
#include "common/restext.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -85,8 +84,6 @@ void CGroup::Draw()
|
|||
float dp;
|
||||
int icon;
|
||||
|
||||
auto device = m_engine->GetDevice();
|
||||
|
||||
if ( (m_state & STATE_VISIBLE) == 0 ) return;
|
||||
|
||||
if ( m_state & STATE_SHADOW )
|
||||
|
@ -96,7 +93,7 @@ void CGroup::Draw()
|
|||
|
||||
dp = 0.5f / 256.0f;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
if ( m_icon == 0 ) // hollow frame?
|
||||
{
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "common/event.h"
|
||||
#include "common/restext.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -95,7 +94,7 @@ void CImage::Draw()
|
|||
glm::vec2 uv1,uv2, corner, pos, dim;
|
||||
float dp;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
if ( (m_state & STATE_VISIBLE) == 0 ) return;
|
||||
|
||||
|
@ -127,7 +126,7 @@ void CImage::Draw()
|
|||
if ( m_filename[0] != 0 ) // displays an image?
|
||||
{
|
||||
Gfx::TextureCreateParams params;
|
||||
params.format = Gfx::TEX_IMG_AUTO;
|
||||
params.format = Gfx::TexImgFormat::AUTO;
|
||||
params.filter = Gfx::TEX_FILTER_BILINEAR;
|
||||
params.padToNearestPowerOfTwo = true;
|
||||
Gfx::Texture tex = m_engine->LoadTexture(m_filename, params);
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "common/global.h"
|
||||
#include "common/stringutils.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -138,7 +137,7 @@ void CKey::Draw()
|
|||
if (m_state & STATE_SHADOW)
|
||||
DrawShadow(m_pos, m_dim);
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button1.png");
|
||||
renderer->SetTexture(texture);
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
|
||||
#include "ui/controls/list.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
#include "graphics/engine/engine.h"
|
||||
|
@ -367,7 +366,7 @@ void CList::Draw()
|
|||
|
||||
dp = 0.5f / 256.0f;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
if (m_icon != -1)
|
||||
{
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
|
||||
#include "common/image.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -337,7 +336,7 @@ void CMap::Draw()
|
|||
glm::vec2 uv1, uv2;
|
||||
int i;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
if ( (m_state & STATE_VISIBLE) == 0 )
|
||||
return;
|
||||
|
@ -508,7 +507,7 @@ void CMap::DrawFocus(const glm::vec2& position, float dir, ObjectType type, MapC
|
|||
uv2.x = 126.0f/256.0f;
|
||||
uv2.y = 255.0f/256.0f;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button2.png");
|
||||
renderer->SetTransparency(Gfx::TransparencyMode::WHITE);
|
||||
|
@ -563,7 +562,7 @@ void CMap::DrawObject(const glm::vec2& position, float dir, ObjectType type, Map
|
|||
dim.x = 2.0f/128.0f*0.75f;
|
||||
dim.y = 2.0f/128.0f;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
if ( bOut ) // outside the map?
|
||||
{
|
||||
|
@ -835,7 +834,7 @@ void CMap::DrawObjectIcon(const glm::vec2& pos, const glm::vec2& dim, MapColor c
|
|||
|
||||
dp = 0.5f/256.0f;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button3.png");
|
||||
renderer->SetTransparency(Gfx::TransparencyMode::NONE);
|
||||
|
@ -984,7 +983,7 @@ void CMap::DrawHighlight(const glm::vec2& position)
|
|||
dim.x *= 2.0f+cosf(m_time*8.0f)*0.5f;
|
||||
dim.y *= 2.0f+cosf(m_time*8.0f)*0.5f;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button2.png");
|
||||
renderer->SetTransparency(Gfx::TransparencyMode::BLACK);
|
||||
|
@ -1003,7 +1002,7 @@ void CMap::DrawHighlight(const glm::vec2& position)
|
|||
|
||||
void CMap::DrawTriangle(const glm::vec2& p1, const glm::vec2& p2, const glm::vec2& p3, const glm::vec2& uv1, const glm::vec2& uv2)
|
||||
{
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
auto vertices = renderer->BeginPrimitive(Gfx::PrimitiveType::TRIANGLE_STRIP, 3);
|
||||
|
||||
|
@ -1019,7 +1018,7 @@ void CMap::DrawTriangle(const glm::vec2& p1, const glm::vec2& p2, const glm::vec
|
|||
|
||||
void CMap::DrawPenta(const glm::vec2& p1, const glm::vec2& p2, const glm::vec2& p3, const glm::vec2& p4, const glm::vec2& p5, const glm::vec2& uv1, const glm::vec2& uv2)
|
||||
{
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
auto vertices = renderer->BeginPrimitive(Gfx::PrimitiveType::TRIANGLE_STRIP, 5);
|
||||
|
||||
vertices[0] = { { p1.x, p1.y }, { uv1.x, uv1.y } };
|
||||
|
@ -1056,7 +1055,7 @@ void CMap::DrawVertex(const glm::vec2& uv1, const glm::vec2& uv2, float zoom)
|
|||
m_mapDim.x = p2.x-p1.x;
|
||||
m_mapDim.y = p2.y-p1.y;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
auto vertices = renderer->BeginPrimitive(Gfx::PrimitiveType::TRIANGLE_STRIP, 4);
|
||||
|
||||
vertices[0] = { { p1.x, p1.y }, { uv1.x, uv2.y } };
|
||||
|
@ -1125,7 +1124,7 @@ void CMap::UpdateTerrain()
|
|||
}
|
||||
}
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
m_engine->DeleteTexture("interface/map.png");
|
||||
m_engine->LoadTexture("textures/interface/map.png", &img);
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
|
||||
#include "common/event.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -309,8 +308,6 @@ void CScroll::Draw()
|
|||
float hButton;
|
||||
int icon, n, i;
|
||||
|
||||
auto device = m_engine->GetDevice();
|
||||
|
||||
hButton = m_buttonUp?m_dim.x/0.75f:0.0f;
|
||||
|
||||
// Draws the bottom.
|
||||
|
@ -365,8 +362,7 @@ void CScroll::DrawVertex(const glm::vec2& pos, const glm::vec2& dim, int icon)
|
|||
glm::vec2 uv1, uv2;
|
||||
float ex, dp;
|
||||
|
||||
auto device = m_engine->GetDevice();
|
||||
auto renderer = device->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
if ( icon == 0 )
|
||||
{
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
|
||||
#include "common/event.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -119,7 +118,7 @@ void CShortcut::Draw()
|
|||
zoom = 1.0f;
|
||||
}
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button3.png");
|
||||
renderer->SetTexture(texture);
|
||||
|
@ -260,7 +259,7 @@ void CShortcut::DrawVertex(int icon, float zoom)
|
|||
u2 -= dp;
|
||||
v2 -= dp;
|
||||
|
||||
auto renderer = m_engine->GetDevice()->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
auto vertices = renderer->BeginPrimitive(Gfx::PrimitiveType::TRIANGLE_STRIP, 4);
|
||||
|
||||
vertices[0] = { { p1.x, p1.y }, { u1, v2 } };
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "common/event.h"
|
||||
#include "common/stringutils.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -375,8 +374,6 @@ void CSlider::Draw()
|
|||
int icon;
|
||||
float h;
|
||||
|
||||
auto device = m_engine->GetDevice();
|
||||
|
||||
if ( (m_state & STATE_VISIBLE) == 0 ) return;
|
||||
|
||||
if (m_buttonLeft != nullptr)
|
||||
|
@ -492,8 +489,7 @@ void CSlider::DrawVertex(const glm::vec2& pos, const glm::vec2& dim, int icon)
|
|||
glm::vec2 uv1, uv2, corner;
|
||||
float ex, dp;
|
||||
|
||||
auto device = m_engine->GetDevice();
|
||||
auto renderer = device->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
if ( icon == 0 )
|
||||
{
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
#include "ui/controls/slider.h"
|
||||
#include "ui/controls/target.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/core/renderers.h"
|
||||
#include "graphics/core/transparency.h"
|
||||
|
||||
|
@ -824,8 +823,6 @@ void CWindow::Draw()
|
|||
{
|
||||
if ( (m_state & STATE_VISIBLE) == 0 ) return;
|
||||
|
||||
auto device = m_engine->GetDevice();
|
||||
|
||||
if ( m_state & STATE_SHADOW )
|
||||
{
|
||||
DrawShadow(m_pos, m_dim);
|
||||
|
@ -909,8 +906,7 @@ void CWindow::DrawVertex(const glm::vec2& position, const glm::vec2& dimension,
|
|||
glm::vec2 pos = position;
|
||||
glm::vec2 dim = dimension;
|
||||
|
||||
auto device = m_engine->GetDevice();
|
||||
auto renderer = device->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
dp = 0.5f/256.0f;
|
||||
|
||||
|
@ -1300,8 +1296,7 @@ void CWindow::DrawHach(const glm::vec2& pos, const glm::vec2& dim)
|
|||
float dp, max, ndim;
|
||||
bool bStop;
|
||||
|
||||
auto device = m_engine->GetDevice();
|
||||
auto renderer = device->GetUIRenderer();
|
||||
auto renderer = m_engine->GetUIRenderer();
|
||||
|
||||
dp = 0.5f/256.0f;
|
||||
auto texture = m_engine->LoadTexture("textures/interface/button2.png");
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "common/settings.h"
|
||||
#include "common/stringutils.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/engine/camera.h"
|
||||
#include "graphics/engine/engine.h"
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "common/settings.h"
|
||||
#include "common/stringutils.h"
|
||||
|
||||
#include "graphics/core/device.h"
|
||||
#include "graphics/engine/camera.h"
|
||||
#include "graphics/engine/engine.h"
|
||||
|
||||
|
|
Loading…
Reference in New Issue