mirror of
https://github.com/hrydgard/ppsspp.git
synced 2024-11-27 23:40:39 +00:00
d3d: Fix some issues with the vertex cache.
This commit is contained in:
parent
bccb8dfb1e
commit
d2df54153d
@ -702,8 +702,8 @@ void TransformDrawEngineDX9::DoFlush() {
|
|||||||
if (1) {
|
if (1) {
|
||||||
void * pVb;
|
void * pVb;
|
||||||
u32 size = dec_->GetDecVtxFmt().stride * indexGen.MaxIndex();
|
u32 size = dec_->GetDecVtxFmt().stride * indexGen.MaxIndex();
|
||||||
pD3Ddevice->CreateVertexBuffer(size, NULL, NULL, D3DPOOL_DEFAULT, &vai->vbo, NULL);
|
pD3Ddevice->CreateVertexBuffer(size, D3DUSAGE_WRITEONLY, 0, D3DPOOL_DEFAULT, &vai->vbo, NULL);
|
||||||
vai->vbo->Lock(0, size, &pVb, D3DLOCK_NOOVERWRITE );
|
vai->vbo->Lock(0, size, &pVb, 0);
|
||||||
memcpy(pVb, decoded, size);
|
memcpy(pVb, decoded, size);
|
||||||
vai->vbo->Unlock();
|
vai->vbo->Unlock();
|
||||||
}
|
}
|
||||||
@ -711,8 +711,8 @@ void TransformDrawEngineDX9::DoFlush() {
|
|||||||
if (useElements) {
|
if (useElements) {
|
||||||
void * pIb;
|
void * pIb;
|
||||||
u32 size = sizeof(short) * indexGen.VertexCount();
|
u32 size = sizeof(short) * indexGen.VertexCount();
|
||||||
pD3Ddevice->CreateIndexBuffer(size, NULL, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &vai->ebo, NULL);
|
pD3Ddevice->CreateIndexBuffer(size, D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &vai->ebo, NULL);
|
||||||
vai->ebo->Lock(0, size, &pIb, D3DLOCK_NOOVERWRITE );
|
vai->ebo->Lock(0, size, &pIb, 0);
|
||||||
memcpy(pIb, decIndex, size);
|
memcpy(pIb, decIndex, size);
|
||||||
vai->ebo->Unlock();
|
vai->ebo->Unlock();
|
||||||
} else {
|
} else {
|
||||||
@ -802,7 +802,7 @@ rotateVBO:
|
|||||||
if (useElements) {
|
if (useElements) {
|
||||||
pD3Ddevice->SetIndices(ib_);
|
pD3Ddevice->SetIndices(ib_);
|
||||||
|
|
||||||
pD3Ddevice->DrawIndexedPrimitive(glprim[prim], 0, 0, 0, 0, D3DPrimCount(glprim[prim], vertexCount));
|
pD3Ddevice->DrawIndexedPrimitive(glprim[prim], 0, 0, vertexCount, 0, D3DPrimCount(glprim[prim], vertexCount));
|
||||||
} else {
|
} else {
|
||||||
pD3Ddevice->DrawPrimitive(glprim[prim], 0, D3DPrimCount(glprim[prim], vertexCount));
|
pD3Ddevice->DrawPrimitive(glprim[prim], 0, D3DPrimCount(glprim[prim], vertexCount));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user