Fix Wii U using an uninitialised vertex buffer
This commit is contained in:
parent
c7cd67c410
commit
6803438358
1 changed files with 34 additions and 24 deletions
|
@ -125,7 +125,7 @@ static VertexBufferSlot* GetVertexBufferSlot(void)
|
||||||
|
|
||||||
static void FlushVertexBuffer(void)
|
static void FlushVertexBuffer(void)
|
||||||
{
|
{
|
||||||
static size_t vertex_buffer_size;
|
static size_t vertex_buffer_size = 1;
|
||||||
static size_t current_vertex_buffer = 0;
|
static size_t current_vertex_buffer = 0;
|
||||||
|
|
||||||
if (current_vertex_buffer_slot == 0)
|
if (current_vertex_buffer_slot == 0)
|
||||||
|
@ -141,11 +141,6 @@ static void FlushVertexBuffer(void)
|
||||||
|
|
||||||
GX2RDestroyBufferEx(&vertex_buffer, (GX2RResourceFlags)0);
|
GX2RDestroyBufferEx(&vertex_buffer, (GX2RResourceFlags)0);
|
||||||
|
|
||||||
vertex_buffer.flags = (GX2RResourceFlags)(GX2R_RESOURCE_BIND_VERTEX_BUFFER |
|
|
||||||
GX2R_RESOURCE_USAGE_CPU_READ |
|
|
||||||
GX2R_RESOURCE_USAGE_CPU_WRITE |
|
|
||||||
GX2R_RESOURCE_USAGE_GPU_READ);
|
|
||||||
vertex_buffer.elemSize = sizeof(VertexBufferSlot);
|
|
||||||
vertex_buffer.elemCount = vertex_buffer_size;
|
vertex_buffer.elemCount = vertex_buffer_size;
|
||||||
|
|
||||||
if (GX2RCreateBuffer(&vertex_buffer))
|
if (GX2RCreateBuffer(&vertex_buffer))
|
||||||
|
@ -210,6 +205,16 @@ RenderBackend_Surface* RenderBackend_Init(const char *window_title, size_t scree
|
||||||
// Initialise sampler
|
// Initialise sampler
|
||||||
GX2InitSampler(&sampler, GX2_TEX_CLAMP_MODE_CLAMP, GX2_TEX_XY_FILTER_MODE_LINEAR);
|
GX2InitSampler(&sampler, GX2_TEX_CLAMP_MODE_CLAMP, GX2_TEX_XY_FILTER_MODE_LINEAR);
|
||||||
|
|
||||||
|
// Initialise vertex buffer
|
||||||
|
vertex_buffer.flags = (GX2RResourceFlags)(GX2R_RESOURCE_BIND_VERTEX_BUFFER |
|
||||||
|
GX2R_RESOURCE_USAGE_CPU_READ |
|
||||||
|
GX2R_RESOURCE_USAGE_CPU_WRITE |
|
||||||
|
GX2R_RESOURCE_USAGE_GPU_READ);
|
||||||
|
vertex_buffer.elemSize = sizeof(VertexBufferSlot);
|
||||||
|
vertex_buffer.elemCount = 1;
|
||||||
|
|
||||||
|
if (GX2RCreateBuffer(&vertex_buffer))
|
||||||
|
{
|
||||||
// Create framebuffer surface
|
// Create framebuffer surface
|
||||||
framebuffer_surface = RenderBackend_CreateSurface(screen_width, screen_height, true);
|
framebuffer_surface = RenderBackend_CreateSurface(screen_width, screen_height, true);
|
||||||
|
|
||||||
|
@ -242,6 +247,11 @@ RenderBackend_Surface* RenderBackend_Init(const char *window_title, size_t scree
|
||||||
{
|
{
|
||||||
Backend_PrintError("Couldn't create the framebuffer surface");
|
Backend_PrintError("Couldn't create the framebuffer surface");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Backend_PrintError("Couldn't create the vertex buffer");
|
||||||
|
}
|
||||||
|
|
||||||
WHBGfxFreeShaderGroup(&shader_group_glyph);
|
WHBGfxFreeShaderGroup(&shader_group_glyph);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue