move shaders to cpp file

This commit is contained in:
Konstantin Käfer
2014-01-20 11:30:06 +01:00
parent 29c10b7835
commit 5aa22b9c32
7 changed files with 27 additions and 32 deletions

View File

@@ -39,39 +39,36 @@ module.exports = function() {
header += '#ifndef LLMR_SHADER_SHADERS\n';
header += '#define LLMR_SHADER_SHADERS\n';
header += '\n';
header += '#ifdef __cplusplus\n';
header += 'extern "C" {\n';
header += '#endif\n';
header += 'namespace llmr {\n';
header += '\n';
header += 'struct llmr_shader {\n';
header += 'struct shader_source {\n';
header += ' const char *vertex;\n';
header += ' const char *fragment;\n';
header += '};\n';
header += 'typedef struct llmr_shader llmr_shader_t;\n'
header += '\n';
header += 'enum {\n';
consts.push('SHADER_COUNT');
header += ' ' + consts.join(',\n ') + '\n';
header += '};\n';
header += '\n';
header += 'extern const llmr_shader_t llmr_shaders[SHADER_COUNT];\n';
header += 'const shader_source shaders[SHADER_COUNT];\n';
header += '\n';
header += '#ifdef __cplusplus\n';
header += '}\n';
header += '#endif\n';
header += '\n';
header += '#endif\n';
fs.writeFileSync('include/llmr/shader/shaders.h', header);
fs.writeFileSync('include/llmr/shader/shaders.hpp', header);
var code = '// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED.\n';
code += '#include <llmr/shader/shaders.h>\n';
code += '#include <llmr/shader/shaders.hpp>\n';
code += '\n';
code += 'const llmr_shader_t llmr_shaders[SHADER_COUNT] = {\n';
code += 'using namespace llmr;\n';
code += '\n';
code += 'const shader_source shaders[SHADER_COUNT] = {\n';
code += lines.join(',\n');
code += '\n};\n';
fs.writeFileSync('src/shader/shaders.c', code);
fs.writeFileSync('src/shader/shaders.cpp', code);
};
module.exports();

View File

@@ -3,15 +3,12 @@
#ifndef LLMR_SHADER_SHADERS
#define LLMR_SHADER_SHADERS
#ifdef __cplusplus
extern "C" {
#endif
namespace llmr {
struct llmr_shader {
struct shader_source {
const char *vertex;
const char *fragment;
};
typedef struct llmr_shader llmr_shader_t;
enum {
FILL_SHADER,
@@ -20,10 +17,8 @@ enum {
SHADER_COUNT
};
extern const llmr_shader_t llmr_shaders[SHADER_COUNT];
extern const shader_source shaders[SHADER_COUNT];
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -9,7 +9,7 @@ SET(llmr_SOURCES
renderer/shader-line.cpp
renderer/shader-outline.cpp
renderer/shader.cpp
shader/shaders.c
shader/shaders.cpp
util/animation.cpp
util/mat4.c
)
@@ -28,6 +28,7 @@ SET(llmr_HEADERS
../include/llmr/renderer/shader-line.hpp
../include/llmr/renderer/shader-outline.hpp
../include/llmr/renderer/shader.hpp
../include/llmr/shader/shaders.hpp
../include/llmr/util/animation.hpp
../include/llmr/util/math.hpp
../include/llmr/util/vec2.hpp

View File

@@ -1,13 +1,13 @@
#include <llmr/renderer/shader-fill.hpp>
#include <llmr/shader/shaders.h>
#include <llmr/shader/shaders.hpp>
#include <llmr/platform/gl.hpp>
using namespace llmr;
FillShader::FillShader()
: Shader(
llmr_shaders[FILL_SHADER].vertex,
llmr_shaders[FILL_SHADER].fragment
shaders[FILL_SHADER].vertex,
shaders[FILL_SHADER].fragment
) {
if (!valid) {
fprintf(stderr, "invalid fill shader\n");

View File

@@ -1,13 +1,13 @@
#include <llmr/renderer/shader-line.hpp>
#include <llmr/shader/shaders.h>
#include <llmr/shader/shaders.hpp>
#include <llmr/platform/gl.hpp>
using namespace llmr;
LineShader::LineShader()
: Shader(
llmr_shaders[LINE_SHADER].vertex,
llmr_shaders[LINE_SHADER].fragment
shaders[LINE_SHADER].vertex,
shaders[LINE_SHADER].fragment
) {
if (!valid) {
fprintf(stderr, "invalid line shader\n");

View File

@@ -1,13 +1,13 @@
#include <llmr/renderer/shader-outline.hpp>
#include <llmr/shader/shaders.h>
#include <llmr/shader/shaders.hpp>
#include <llmr/platform/gl.hpp>
using namespace llmr;
OutlineShader::OutlineShader()
: Shader(
llmr_shaders[OUTLINE_SHADER].vertex,
llmr_shaders[OUTLINE_SHADER].fragment
shaders[OUTLINE_SHADER].vertex,
shaders[OUTLINE_SHADER].fragment
) {
if (!valid) {
fprintf(stderr, "invalid outline shader\n");

View File

@@ -1,7 +1,9 @@
// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED.
#include <llmr/shader/shaders.h>
#include <llmr/shader/shaders.hpp>
const llmr_shader_t llmr_shaders[SHADER_COUNT] = {
using namespace llmr;
const shader_source llmr::shaders[SHADER_COUNT] = {
[FILL_SHADER] = {
.vertex = "attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n",
.fragment = "uniform vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",