parent
b9713f71b1
commit
b656b0bbf9
|
|
@ -496,6 +496,7 @@ prepare_vertex_buffer(GeomVertexArrayData *data) {
|
|||
}
|
||||
#endif
|
||||
|
||||
dvbc->update_data_size_bytes(num_bytes);
|
||||
return dvbc;
|
||||
} else {
|
||||
dxgsg9_cat.error()
|
||||
|
|
@ -533,14 +534,42 @@ apply_vertex_buffer(VertexBufferContext *vbc,
|
|||
return false;
|
||||
}
|
||||
|
||||
PStatTimer timer(_load_vertex_buffer_pcollector, reader->get_current_thread());
|
||||
|
||||
#if 0
|
||||
if (dvbc->changed_size(reader)) {
|
||||
// We have to destroy the old vertex buffer and create a new one.
|
||||
dvbc->create_vbuffer(*_screen, reader);
|
||||
// Destroy and recreate the buffer.
|
||||
if (dvbc->_vbuffer != nullptr) {
|
||||
dvbc->_vbuffer->Release();
|
||||
dvbc->_vbuffer = nullptr;
|
||||
}
|
||||
|
||||
DWORD usage;
|
||||
D3DPOOL pool;
|
||||
if (_screen->_managed_vertex_buffers) {
|
||||
pool = D3DPOOL_MANAGED;
|
||||
usage = D3DUSAGE_WRITEONLY;
|
||||
} else {
|
||||
pool = D3DPOOL_DEFAULT;
|
||||
usage = D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC;
|
||||
}
|
||||
|
||||
PStatTimer timer(_create_vertex_buffer_pcollector, Thread::get_current_thread());
|
||||
|
||||
HRESULT hr;
|
||||
int attempts = 0;
|
||||
do {
|
||||
hr = _screen->_d3d_device->CreateVertexBuffer(num_bytes, usage, dvbc->_fvf, pool, &dvbc->_vbuffer, nullptr);
|
||||
attempts++;
|
||||
} while (check_dx_allocation(hr, num_bytes, attempts));
|
||||
|
||||
if (FAILED(hr)) {
|
||||
dvbc->_vbuffer = nullptr;
|
||||
dxgsg9_cat.error()
|
||||
<< "CreateVertexBuffer failed" << D3DERRORSTRING(hr);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
PStatTimer timer(_load_vertex_buffer_pcollector, reader->get_current_thread());
|
||||
|
||||
HRESULT hr;
|
||||
BYTE *local_pointer;
|
||||
|
|
|
|||
Loading…
Reference in New Issue