FFL
Loading...
Searching...
No Matches
FFLiUtilShader.h
Go to the documentation of this file.
1#ifndef FFLI_UTIL_SHADER_H_
2#define FFLI_UTIL_SHADER_H_
3
4#include <nn/ffl/types.h>
5
6#include <cafe/gx2.h>
7
9
11{
12public:
18 NN_STATIC_ASSERT(sizeof(FetchShader) == 0x24);
19
28
29public:
30 static u32 GetBufferSize(u32 numAttribs, const void* pShaderData, u32 shaderIndex);
31 static u32 GetBufferSizeForFetch(u32 numAttribs);
32
33 static u32 GetHeaderBufferSize(u32 numAttribs, const void* pShaderData, u32 shaderIndex);
34 static u32 GetHeaderBufferSizeForFetch(u32 numAttribs);
35
36 static u32 GetProgramBufferSize(u32 numAttribs, const void* pShaderData, u32 shaderIndex);
37 static u32 GetProgramBufferSizeForFetch(u32 numAttribs);
38
39 static bool BuildShader(FFLiUtilShader::FetchShader* pFetchShader, const GX2VertexShader* pVertexShader, FFLiUtilShaderAllocator* pAllocator, const FFLiUtilShader::AttributeStreamDesc* pAttribs, u32 numAttribs, bool invalidate);
40 static bool BuildShader(GX2PixelShader** ppShader, FFLiUtilShaderAllocator* pAllocator, const void* pShaderData, u32 shaderIndex, bool invalidate);
41 static bool BuildShader(GX2VertexShader** ppShader, FFLiUtilShaderAllocator* pAllocator, const void* pShaderData, u32 shaderIndex, bool invalidate);
42
43 static bool GetUniformLocation(u32* pLocation, const GX2PixelShader* pShader, const char* name);
44 static bool GetUniformLocation(u32* pLocation, const GX2VertexShader* pShader, const char* name);
45
46 static bool GetUniformBlockLocation(u32* pLocation, const GX2PixelShader* pShader, const char* name);
47 static bool GetUniformBlockLocation(u32* pLocation, const GX2VertexShader* pShader, const char* name);
48
49 static bool GetSamplerLocation(u32* pLocation, const GX2PixelShader* pShader, const char* name);
50};
51
52#endif // FFLI_UTIL_SHADER_H_
Definition FFLiUtilShaderAllocator.h:7
Definition FFLiUtilShader.h:11
static u32 GetProgramBufferSize(u32 numAttribs, const void *pShaderData, u32 shaderIndex)
Definition FFLiUtilShader.cpp:55
static bool GetUniformBlockLocation(u32 *pLocation, const GX2PixelShader *pShader, const char *name)
Definition FFLiUtilShader.cpp:114
static bool GetSamplerLocation(u32 *pLocation, const GX2PixelShader *pShader, const char *name)
Definition FFLiUtilShader.cpp:124
static bool GetUniformLocation(u32 *pLocation, const GX2PixelShader *pShader, const char *name)
Definition FFLiUtilShader.cpp:104
static u32 GetBufferSizeForFetch(u32 numAttribs)
Definition FFLiUtilShader.cpp:32
NN_STATIC_ASSERT(sizeof(FetchShader)==0x24)
static u32 GetHeaderBufferSizeForFetch(u32 numAttribs)
Definition FFLiUtilShader.cpp:50
static u32 GetBufferSize(u32 numAttribs, const void *pShaderData, u32 shaderIndex)
Definition FFLiUtilShader.cpp:23
static bool BuildShader(FFLiUtilShader::FetchShader *pFetchShader, const GX2VertexShader *pVertexShader, FFLiUtilShaderAllocator *pAllocator, const FFLiUtilShader::AttributeStreamDesc *pAttribs, u32 numAttribs, bool invalidate)
Definition FFLiUtilShader.cpp:69
static bool BuildShader(GX2PixelShader **ppShader, FFLiUtilShaderAllocator *pAllocator, const void *pShaderData, u32 shaderIndex, bool invalidate)
Definition FFLiUtilShader.cpp:94
static u32 GetProgramBufferSizeForFetch(u32 numAttribs)
Definition FFLiUtilShader.cpp:64
static u32 GetHeaderBufferSize(u32 numAttribs, const void *pShaderData, u32 shaderIndex)
Definition FFLiUtilShader.cpp:41
Definition FFLiUtilShader.h:21
u32 offset
Definition FFLiUtilShader.h:24
const char * name
Definition FFLiUtilShader.h:22
u32 buffer
Definition FFLiUtilShader.h:23
GX2AttribFormat format
Definition FFLiUtilShader.h:25
Definition FFLiUtilShader.h:14
GX2AttribStream * pStreams
Definition FFLiUtilShader.h:16
GX2FetchShader fetchShader
Definition FFLiUtilShader.h:15