Merge pull request #3400 from lioncash/shadergen

ShaderGen: Get rid of static buffers
This commit is contained in:
Markus Wick
2015-12-28 10:09:11 +01:00
11 changed files with 84 additions and 139 deletions

View File

@ -5,18 +5,14 @@
#include <cmath>
#include "VideoCommon/BPMemory.h"
#include "VideoCommon/CPMemory.h"
#include "VideoCommon/DriverDetails.h"
#include "VideoCommon/LightingShaderGen.h"
#include "VideoCommon/NativeVertexFormat.h"
#include "VideoCommon/VertexLoaderManager.h"
#include "VideoCommon/VertexShaderGen.h"
#include "VideoCommon/VideoConfig.h"
static char text[16768];
template<class T>
static inline T GenerateVertexShader(API_TYPE api_type)
static T GenerateVertexShader(API_TYPE api_type)
{
T out;
const u32 components = VertexLoaderManager::g_current_components;
@ -26,12 +22,6 @@ static inline T GenerateVertexShader(API_TYPE api_type)
if (uid_data == nullptr)
uid_data = &dummy_data;
out.SetBuffer(text);
const bool is_writing_shadercode = (out.GetBuffer() != nullptr);
if (is_writing_shadercode)
text[sizeof(text) - 1] = 0x7C; // canary
_assert_(bpmem.genMode.numtexgens == xfmem.numTexGen.numTexGens);
_assert_(bpmem.genMode.numcolchans == xfmem.numChan.numColorChans);
@ -390,12 +380,6 @@ static inline T GenerateVertexShader(API_TYPE api_type)
}
out.Write("}\n");
if (is_writing_shadercode)
{
if (text[sizeof(text) - 1] != 0x7C)
PanicAlert("VertexShader generator - buffer too small, canary has been eaten!");
}
return out;
}