mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
patch from teedee for dx9 custom vertex data
This commit is contained in:
parent
560221d566
commit
9d5e107aa4
@ -629,6 +629,9 @@ update_shader_vertex_arrays(CLP(ShaderContext) *prev, GSG *gsg, bool force) {
|
|||||||
case 3:
|
case 3:
|
||||||
vertex_element_array->add_uvw_vertex_element(array_index, start, slot);
|
vertex_element_array->add_uvw_vertex_element(array_index, start, slot);
|
||||||
break;
|
break;
|
||||||
|
case 4:
|
||||||
|
vertex_element_array->add_xyzw_vertex_element(array_index, start, slot);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
dxgsg9_cat.error() << "VE ERROR: invalid number of vertex texture coordinate elements " << num_values << "\n";
|
dxgsg9_cat.error() << "VE ERROR: invalid number of vertex texture coordinate elements " << num_values << "\n";
|
||||||
break;
|
break;
|
||||||
|
@ -208,6 +208,24 @@ void VertexElementArray::add_uvw_vertex_element(int stream_index, int offset, in
|
|||||||
_total_elements++;
|
_total_elements++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VertexElementArray::add_xyzw_vertex_element(int stream_index, int offset, int texture_stage) {
|
||||||
|
if (_total_elements >= _maximum_vertex_elements) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LPD3DVERTEXELEMENT9 vertex_element = &_vertex_element_array[_total_elements];
|
||||||
|
|
||||||
|
vertex_element->Stream = stream_index;
|
||||||
|
vertex_element->Offset = offset;
|
||||||
|
vertex_element->Type = D3DDECLTYPE_FLOAT4;
|
||||||
|
vertex_element->Method = D3DDECLMETHOD_DEFAULT;
|
||||||
|
|
||||||
|
vertex_element->Usage = D3DDECLUSAGE_TEXCOORD;
|
||||||
|
vertex_element->UsageIndex = texture_stage;
|
||||||
|
|
||||||
|
_total_elements++;
|
||||||
|
}
|
||||||
|
|
||||||
bool VertexElementArray::add_end_vertex_element(void) {
|
bool VertexElementArray::add_end_vertex_element(void) {
|
||||||
if (_total_elements >= _maximum_vertex_elements) {
|
if (_total_elements >= _maximum_vertex_elements) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -50,6 +50,7 @@ public:
|
|||||||
void add_u_vertex_element (int stream_index, int offset, int texture_stage);
|
void add_u_vertex_element (int stream_index, int offset, int texture_stage);
|
||||||
void add_uv_vertex_element (int stream_index, int offset, int texture_stage);
|
void add_uv_vertex_element (int stream_index, int offset, int texture_stage);
|
||||||
void add_uvw_vertex_element (int stream_index, int offset, int texture_stage);
|
void add_uvw_vertex_element (int stream_index, int offset, int texture_stage);
|
||||||
|
void add_xyzw_vertex_element (int stream_index, int offset, int texture_stage);
|
||||||
|
|
||||||
bool add_end_vertex_element (void);
|
bool add_end_vertex_element (void);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user