#ifndef MSP_GL_BUFFER_BACKEND_H_
#define MSP_GL_BUFFER_BACKEND_H_
+#include <string>
#include <msp/core/noncopyable.h>
#include "mspgl_api.h"
#ifndef MSP_GL_MODULE_BACKEND_H_
#define MSP_GL_MODULE_BACKEND_H_
+#include <string>
#include <msp/core/noncopyable.h>
#include "mspgl_api.h"
namespace Msp {
namespace GL {
+class GlslModule;
+class SpirVModule;
+
class MSPGL_API OpenGLProgram: public NonCopyable
{
friend class OpenGLPipelineState;
#ifndef MSP_GL_SAMPLER_BACKEND_H_
#define MSP_GL_SAMPLER_BACKEND_H_
+#include <string>
#include <msp/core/noncopyable.h>
#include "mspgl_api.h"
#ifndef MSP_GL_TEXTURE_BACKEND_H_
#define MSP_GL_TEXTURE_BACKEND_H_
+#include <string>
#include <msp/core/noncopyable.h>
#include "mspgl_api.h"
#ifndef MSP_GL_VERTEXSETUP_BACKEND_H_
#define MSP_GL_VERTEXSETUP_BACKEND_H_
+#include <string>
#include <msp/core/noncopyable.h>
#include "mspgl_api.h"
#ifndef MSP_GL_BUFFER_BACKEND_H_
#define MSP_GL_BUFFER_BACKEND_H_
+#include <string>
#include <msp/core/noncopyable.h>
#include "handles.h"
#include "mspgl_api.h"
namespace Msp {
namespace GL {
-struct VulkanFunctions;
+class VulkanFunctions;
constexpr unsigned MAX_FRAMES_IN_FLIGHT = 3;
#ifndef MSP_GL_MODULE_BACKEND_H_
#define MSP_GL_MODULE_BACKEND_H_
+#include <string>
#include "handles.h"
#include "mspgl_api.h"
#ifndef MSP_GL_PIPELINESTATE_BACKEND_H_
#define MSP_GL_PIPELINESTATE_BACKEND_H_
+#include <cstdint>
+#include <string>
+#include <vector>
#include <msp/core/noncopyable.h>
#include "handles.h"
#include "mspgl_api.h"
#include <msp/core/noncopyable.h>
#include "mspgl_api.h"
#include "reflectdata.h"
+#include "handles.h"
namespace Msp {
namespace GL {
class Device;
+class GlslModule;
+class SpirVModule;
class MSPGL_API VulkanProgram: public NonCopyable
{
#ifndef MSP_GL_RENDERPASS_H_
#define MSP_GL_RENDERPASS_H_
+#include <cstdint>
#include <vector>
#include "handles.h"
+#include "rect.h"
namespace Msp {
namespace GL {
#ifndef MSP_GL_SAMPLER_BACKEND_H_
#define MSP_GL_SAMPLER_BACKEND_H_
+#include <string>
#include "handles.h"
#include "mspgl_api.h"
namespace Msp {
namespace GL {
+class Device;
class VulkanCommandRecorder;
class Synchronizer
#ifndef MSP_GL_TEXTURE_BACKEND_H_
#define MSP_GL_TEXTURE_BACKEND_H_
+#include <string>
+#include <vector>
#include <msp/core/noncopyable.h>
#include "handles.h"
#include "mspgl_api.h"
#define MSP_GL_VULKAN_TRANSFERQUEUE_H_
#include <functional>
+#include <map>
#include <vector>
#include "handles.h"
#define MSP_GL_VERTEXSETUP_BACKEND_H_
#include <cstdint>
+#include <string>
#include <vector>
#include <msp/core/noncopyable.h>
#include "handles.h"
#ifndef MSP_GL_VULKAN_H_
#define MSP_GL_VULKAN_H_
+#include <cstdint>
#include <vulkan/vulkan.h>
#include <msp/graphics/vulkancontext.h>
#include "handles.h"
#ifndef MSP_GL_PIPELINEBUILDER_H_
#define MSP_GL_PIPELINEBUILDER_H_
+#include <msp/core/attributes.h>
#include "sequencebuilder.h"
namespace Msp {
#ifndef MSP_GL_VERTEXBUILDER_H_
#define MSP_GL_VERTEXBUILDER_H_
-#include <map>
+#include <vector>
#include "color.h"
#include "matrix.h"
#include "vector.h"
class DirectionalLight;
class Light;
+class Lighting;
class PointLight;
+class Sampler;
/**
Creates a depth texture which can be used to add shadows to a renderable.
class DirectionalLight;
class Mesh;
class Program;
+class Sampler;
/**
Renders a procedurally generated sky at the background.
namespace GL {
class Texture;
+class Texture2D;
class Texture2DArray;
class MSPGL_API SplatMaterial: public Material, public NonCopyable
namespace Msp {
namespace GL {
+class Camera;
+
enum SortOrder
{
FRONT_TO_BACK = 0,