mirror of
https://github.com/dborth/snes9xgx.git
synced 2024-12-26 03:01:51 +01:00
xenon: use shaders from array
This commit is contained in:
parent
05fcd2816c
commit
feee83d784
@ -11,6 +11,41 @@ struct XenosShader *sh_ps, *sh_vs;
|
|||||||
struct XenosVertexBuffer *vb;
|
struct XenosVertexBuffer *vb;
|
||||||
struct XenosIndexBuffer *ib;
|
struct XenosIndexBuffer *ib;
|
||||||
|
|
||||||
|
static unsigned char content_datapspsu[] = {
|
||||||
|
0x10, 0x2a, 0x11, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x4b,
|
||||||
|
0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0xab, 0xab, 0x00, 0x04, 0x00, 0x0c,
|
||||||
|
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40,
|
||||||
|
0x40, 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0xab, 0xab,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x21, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
|
||||||
|
0x00, 0x00, 0xf0, 0x50, 0x00, 0x01, 0x10, 0x02, 0x00, 0x00, 0x12, 0x00, 0xc4, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x10, 0x03, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x01,
|
||||||
|
0x1f, 0x1f, 0xf6, 0x88, 0x00, 0x00, 0x40, 0x00, 0xc8, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xe2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
static unsigned char content_datavsvsu[] = {
|
||||||
|
0x10, 0x2a, 0x11, 0x01, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23,
|
||||||
|
0xff, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1c, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40,
|
||||||
|
0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0xab, 0xab, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
|
||||||
|
0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x21,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x90,
|
||||||
|
0x00, 0x10, 0x00, 0x03, 0x00, 0x30, 0x50, 0x04, 0x00, 0x00, 0xf0, 0x50, 0x00, 0x00, 0x10, 0x06,
|
||||||
|
0x30, 0x05, 0x20, 0x03, 0x00, 0x00, 0x12, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x05,
|
||||||
|
0x00, 0x00, 0x12, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x06, 0x00, 0x00, 0x22, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x05, 0xf8, 0x10, 0x00, 0x00, 0x00, 0x06, 0x88, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x05, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x06, 0x88, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x0f, 0x80, 0x3e,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xe2, 0x01, 0x01, 0x00, 0xc8, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xe2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
void videoInit(void)
|
void videoInit(void)
|
||||||
{
|
{
|
||||||
xe = &_xe;
|
xe = &_xe;
|
||||||
@ -48,12 +83,12 @@ void videoInit(void)
|
|||||||
|
|
||||||
printf("loading pixel shader...\n");
|
printf("loading pixel shader...\n");
|
||||||
/* load pixel shader */
|
/* load pixel shader */
|
||||||
sh_ps = Xe_LoadShader(xe, "ps.psu");
|
sh_ps = Xe_LoadShaderFromMemory(xe, content_datapspsu);
|
||||||
Xe_InstantiateShader(xe, sh_ps, 0);
|
Xe_InstantiateShader(xe, sh_ps, 0);
|
||||||
|
|
||||||
printf("loading vertex shader...\n");
|
printf("loading vertex shader...\n");
|
||||||
/* load vertex shader */
|
/* load vertex shader */
|
||||||
sh_vs = Xe_LoadShader(xe, "vs.vsu");
|
sh_vs = Xe_LoadShaderFromMemory(xe, content_datavsvsu);
|
||||||
Xe_InstantiateShader(xe, sh_vs, 0);
|
Xe_InstantiateShader(xe, sh_vs, 0);
|
||||||
Xe_ShaderApplyVFetchPatches(xe, sh_vs, 0, &vbf);
|
Xe_ShaderApplyVFetchPatches(xe, sh_vs, 0, &vbf);
|
||||||
|
|
||||||
@ -74,6 +109,12 @@ void videoInit(void)
|
|||||||
do_edram_foo(xe, 1);
|
do_edram_foo(xe, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* void waitVBlank(void)
|
||||||
|
{
|
||||||
|
while (!Xe_IsVBlank(xe));
|
||||||
|
} */
|
||||||
|
|
||||||
void videoBlit(int xres, int yres)
|
void videoBlit(int xres, int yres)
|
||||||
{
|
{
|
||||||
/* flush cache */
|
/* flush cache */
|
||||||
@ -108,9 +149,12 @@ void videoBlit(int xres, int yres)
|
|||||||
/* clear to white */
|
/* clear to white */
|
||||||
Xe_SetClearColor(xe, ~0);
|
Xe_SetClearColor(xe, ~0);
|
||||||
|
|
||||||
|
// waitVBlank();
|
||||||
|
|
||||||
/* resolve (and clear) */
|
/* resolve (and clear) */
|
||||||
Xe_Resolve(xe);
|
Xe_Resolve(xe);
|
||||||
|
|
||||||
/* wait for render finish */
|
/* wait for render finish */
|
||||||
Xe_Sync(xe);
|
Xe_Sync(xe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user