2014-06-15 03:12:45 +02:00
|
|
|
#pragma once
|
|
|
|
#ifndef _GAMESHADERS_HPP_
|
|
|
|
#define _GAMESHADERS_HPP_
|
|
|
|
|
2015-03-28 14:42:29 +01:00
|
|
|
#define SHADER_VF(Name) \
|
|
|
|
struct Name {\
|
|
|
|
static const char* VertexShader;\
|
|
|
|
static const char* FragmentShader;\
|
|
|
|
};
|
|
|
|
|
2014-07-09 06:04:48 +02:00
|
|
|
/**
|
|
|
|
* @brief collection of shaders to make managing them a little easier.
|
|
|
|
*/
|
2014-06-15 03:12:45 +02:00
|
|
|
namespace GameShaders {
|
|
|
|
|
2015-03-28 14:42:29 +01:00
|
|
|
/**
|
|
|
|
* High Quality Projected-Grid water shader
|
|
|
|
*/
|
|
|
|
SHADER_VF(WaterHQ)
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Simple 3D masking shader
|
|
|
|
*/
|
|
|
|
SHADER_VF(Mask3D)
|
2014-06-15 03:12:45 +02:00
|
|
|
|
|
|
|
struct Sky {
|
|
|
|
static const char* VertexShader;
|
|
|
|
static const char* FragmentShader;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct WorldObject {
|
|
|
|
static const char* VertexShader;
|
|
|
|
static const char* FragmentShader;
|
|
|
|
};
|
|
|
|
|
2014-07-09 06:04:48 +02:00
|
|
|
/** @brief Particle effect shaders, uses WorldObject::VertexShader */
|
2014-07-09 03:06:59 +02:00
|
|
|
struct Particle {
|
|
|
|
static const char* FragmentShader;
|
|
|
|
};
|
|
|
|
|
2014-07-28 03:27:55 +02:00
|
|
|
/**
|
|
|
|
* @brief The ScreenSpaceRect shader
|
|
|
|
*
|
|
|
|
* Used to draw black bars, splash screens, fading etc.
|
|
|
|
*/
|
|
|
|
struct ScreenSpaceRect {
|
|
|
|
static const char* VertexShader;
|
|
|
|
static const char* FragmentShader;
|
|
|
|
};
|
|
|
|
|
2015-03-28 14:42:29 +01:00
|
|
|
SHADER_VF(DefaultPostProcess);
|
|
|
|
|
2014-06-15 03:12:45 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|