mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 06:39:46 -06:00
PortableVertexFormat: use AttributeFormat for posmtx attribute format
This commit is contained in:
@ -89,8 +89,7 @@ struct PortableVertexDeclaration
|
||||
AttributeFormat normals[3];
|
||||
AttributeFormat colors[2];
|
||||
AttributeFormat texcoords[8];
|
||||
|
||||
int posmtx_offset;
|
||||
AttributeFormat posmtx;
|
||||
};
|
||||
|
||||
// The implementation of this class is specific for GL/DX, so NativeVertexFormat.cpp
|
||||
|
@ -756,13 +756,13 @@ void VertexLoader::CompileVertexTranslator()
|
||||
if (m_VtxDesc.PosMatIdx)
|
||||
{
|
||||
WriteCall(PosMtx_Write);
|
||||
vtx_decl.posmtx_offset = nat_offset;
|
||||
vtx_decl.posmtx.components = 4;
|
||||
vtx_decl.posmtx.enable = true;
|
||||
vtx_decl.posmtx.offset = nat_offset;
|
||||
vtx_decl.posmtx.type = VAR_UNSIGNED_BYTE;
|
||||
vtx_decl.posmtx.integer = false;
|
||||
nat_offset += 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
vtx_decl.posmtx_offset = -1;
|
||||
}
|
||||
|
||||
native_stride = nat_offset;
|
||||
vtx_decl.stride = native_stride;
|
||||
|
@ -168,7 +168,7 @@ static inline void GenerateVertexShader(T& out, u32 components, API_TYPE api_typ
|
||||
out.Write(" float%d tex%d : TEXCOORD%d,\n", hastexmtx ? 3 : 2, i, i);
|
||||
}
|
||||
if (components & VB_HAS_POSMTXIDX)
|
||||
out.Write(" float4 blend_indices : BLENDINDICES,\n");
|
||||
out.Write(" float4 fposmtx : BLENDINDICES,\n");
|
||||
out.Write(" float4 rawpos : POSITION) {\n");
|
||||
}
|
||||
out.Write("VS_OUTPUT o;\n");
|
||||
@ -176,10 +176,7 @@ static inline void GenerateVertexShader(T& out, u32 components, API_TYPE api_typ
|
||||
// transforms
|
||||
if (components & VB_HAS_POSMTXIDX)
|
||||
{
|
||||
if (api_type == API_D3D)
|
||||
out.Write("int posmtx = blend_indices.x * 255.0;\n"); // TODO: Ugly, should use an integer instead
|
||||
else
|
||||
out.Write("int posmtx = int(fposmtx);\n");
|
||||
out.Write("int posmtx = int(fposmtx * 255.0);\n"); // TODO: Ugly, should use an integer instead
|
||||
|
||||
if (is_writing_shadercode && (DriverDetails::HasBug(DriverDetails::BUG_NODYNUBOACCESS) && !DriverDetails::HasBug(DriverDetails::BUG_ANNIHILATEDUBOS)) )
|
||||
{
|
||||
|
Reference in New Issue
Block a user