commit x64 compilation from lulu cause the other branch dont seems to compile properly at home
This commit is contained in:
65
include/engine/gpu/gpu_shader_compiler.cpp
Normal file
65
include/engine/gpu/gpu_shader_compiler.cpp
Normal file
@ -0,0 +1,65 @@
|
||||
/* -----------------------------------------------------------------------------
|
||||
nEngine - GSFramework
|
||||
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#include "gpu/gpu_shader_compiler.h"
|
||||
#include "gpu/gpu_renderer.h"
|
||||
#include "log/file_log.h"
|
||||
#include "log/log.h"
|
||||
|
||||
using namespace GS;
|
||||
using namespace GPU;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
bool IShaderCompiler::Compile(const Core::Shader &shader, Shader &gpu_shader, const char *binary_cache_id)
|
||||
{
|
||||
if (!shader.name.IsEmpty())
|
||||
__LOG_V__ << "Creating shader '" << shader.name << "'...\n";
|
||||
gpu_shader.name = shader.name;
|
||||
|
||||
// Compile shader objects.
|
||||
String vertex_source, pixel_source;
|
||||
if (!renderer.TranslateShader(shader, vertex_source, pixel_source))
|
||||
return false;
|
||||
|
||||
gpu_shader.vertex = renderer.NewGPUShaderObject();
|
||||
gpu_shader.pixel = renderer.NewGPUShaderObject();
|
||||
if (gpu_shader.vertex.IsNull() || gpu_shader.pixel.IsNull())
|
||||
return false;
|
||||
|
||||
String vertex_error, pixel_error;
|
||||
if (
|
||||
!CompileObject(vertex_source, *gpu_shader.vertex, ShaderObject::Vertex, shader.name, &vertex_error) ||
|
||||
!CompileObject(pixel_source, *gpu_shader.pixel, ShaderObject::Pixel, shader.name, &pixel_error)
|
||||
)
|
||||
{
|
||||
__LOG_E__ << "Shader '" << shader.name << "' failed to compile.\n";
|
||||
|
||||
//#ifdef _DEBUG
|
||||
FileLog file_log("c:/shader_error.log");
|
||||
file_log << "--------------------------------------------------------------------------------\n";
|
||||
file_log << "Failed to compile shader '" << shader.name << "'.\n\n";
|
||||
file_log << "Vertex error:" << vertex_error << "\n\n";
|
||||
file_log << "Pixel error:" << pixel_error << "\n\n";
|
||||
file_log << "--------------------------------------------------------------------------------\n";
|
||||
file_log << "\n";
|
||||
file_log << "VERTEX:\n";
|
||||
file_log << "\n";
|
||||
file_log << vertex_source.NormalizedEOL(String::EOLUnix);
|
||||
file_log << "\n";
|
||||
file_log << "PIXEL:\n";
|
||||
file_log << "\n";
|
||||
file_log << pixel_source.NormalizedEOL(String::EOLUnix);
|
||||
file_log << "\n";
|
||||
file_log << "--------------------------------------------------------------------------------\n";
|
||||
file_log << "\n";
|
||||
//#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
return Link(shader, gpu_shader);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user