commit x64 compilation from lulu cause the other branch dont seems to compile properly at home

This commit is contained in:
2026-07-17 16:08:20 +02:00
parent c0f3eeb00d
commit 0efa4ee6f7
625 changed files with 117283 additions and 4426 deletions

View File

@ -0,0 +1,68 @@
/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#include "gpu/gpu_triangle_batch.h"
#include "gpu/gpu_renderer.h"
using namespace GS;
using namespace GS::GPU;
//------------------------------------------------------------------------------
void TriangleBatch::Flush()
{
if (batch_triangle_count > 0)
renderer.DrawTriangle(batch_triangle_count, batch_vtx, batch_idx, batch_col, batch_uv, batch_t, batch_blend_op, batch_render_word);
batch_triangle_count = 0;
batch_attrib_offset = 0;
}
void TriangleBatch::DrawTriangle(uint triangle_count, uint attrib_count, const Vector4 *vtx, const ushort *idx, const Color *col, const Vector2 *uv, const Render::Texture *t, Core::Material::BlendOperator blend_op, Core::Material::RenderWord render_word)
{
bool batch_broken = (batch_triangle_count == 0) || (batch_t != t) || (batch_blend_op != blend_op) || (batch_render_word != render_word);
if (batch_triangle_count + triangle_count > batch_max_triangle_count)
batch_broken = true;
if (batch_broken)
Flush();
// Transfer and fix-up indices.
for (uint n = 0; n < triangle_count; ++n)
{
batch_idx[batch_triangle_count * 3 + 0] = (ushort)(idx[n * 3 + 0] + batch_attrib_offset);
batch_idx[batch_triangle_count * 3 + 1] = (ushort)(idx[n * 3 + 1] + batch_attrib_offset);
batch_idx[batch_triangle_count * 3 + 2] = (ushort)(idx[n * 3 + 2] + batch_attrib_offset);
++batch_triangle_count;
}
// Transfer attributes.
Memory::Copy(&batch_vtx[batch_attrib_offset], vtx, sizeof(Vector4) * attrib_count);
Memory::Copy(&batch_col[batch_attrib_offset], col, sizeof(Color) * attrib_count);
Memory::Copy(&batch_uv[batch_attrib_offset], uv, sizeof(Vector2) * attrib_count);
batch_attrib_offset += attrib_count;
batch_render_word = render_word;
batch_blend_op = blend_op;
batch_t = t;
}
//------------------------------------------------------------------------------
TriangleBatch::TriangleBatch(Renderer &r, uint max) : renderer(r)
{
batch_t = NULL;
batch_render_word = Core::Material::Render_None;
batch_blend_op = Core::Material::Blend_None;
batch_max_triangle_count = max;
batch_triangle_count = 0;
batch_attrib_offset = 0;
batch_idx.Allocate(3 * batch_max_triangle_count);
batch_vtx.Allocate(3 * batch_max_triangle_count);
batch_col.Allocate(3 * batch_max_triangle_count);
batch_uv.Allocate(3 * batch_max_triangle_count);
}