此函数使用另一个顶点缓冲区的 (部分) 内容来更新顶点缓冲区的内容。
重要信息 您无法将 冻结 顶点缓冲区传递到此函数中。
vertex_update_buffer_from_vertex(dest_vbuff, dest_vert, src_vbuff[, src_vert, src_vert_num]);
参数 | 类型 | 描述 |
---|---|---|
dest_vbuff | Vertex Buffer | 将顶点复制到的目标顶点缓冲区 |
dest_vert | Real | 要复制到的目标顶点缓冲区中第一个顶点的索引 |
src_vbuff | Vertex Buffer | 用于从中复制顶点的源顶点缓冲区 |
src_vert | Real | 可选 要复制的源顶点缓冲区中第一个顶点的索引 |
src_vert_num | Real | 可选 要复制的顶点数 |
N/A
Create Event
vertex_format_begin();
vertex_format_add_position_3d(); // Three buffer_f32 values
vertex_format_add_color(); // Four buffer_u8 values
vertex_format_add_texcoord(); // Two buffer_f32 values
vertex_format = vertex_format_end();
vb = vertex_create_buffer();
vertex_begin(vb, vertex_format);
vertex_position_3d(vb, 100, 100, 0);
vertex_color(vb, c_lime, 1);
vertex_texcoord(vb, 0, 0);
vertex_position_3d(vb, 200, 100, 0);
vertex_color(vb, c_lime, 1);
vertex_texcoord(vb, 1, 0);
vertex_position_3d(vb, 200, 200, 0);
vertex_color(vb, c_lime, 1);
vertex_texcoord(vb, 1, 1);
vertex_end(vb);
vb2 = vertex_create_buffer();
vertex_update_buffer_from_vertex(vb2, 0, vb);
Draw Event
vertex_submit(vb2, pr_trianglelist, -1);
上面的代码显示了如何将顶点缓冲区的内容复制到另一个新创建的顶点缓冲区。
首先,在 Create 事件中,创建与 直通顶点格式 相同的顶点格式并将其存储在变量 vertex_format 中。 然后,根据顶点格式创建一个新的顶点缓冲区并用三个顶点填充。在那之后, 使用 vertex_update_buffer_from_vertex 创建第二个顶点缓冲区 vb2,并使用 vb 中的顶点数据进行更新。 函数调用后,vb2 中的顶点数据将与 vb 中的相同。
最后,在 Draw 事件中,使用 vertex_submit 绘制 vb2。