49{
51 char *instr = (
char *)
buffer->desc.lpData + is;
52 unsigned int i, primitive_size;
56
57 TRACE(
"ExecuteData :\n");
60
61 for (;;)
62 {
66
69 instr += sizeof(*current);
70 primitive_size = 0;
71
73 {
75 {
82
86
87 instr +=
sizeof(*p) *
count;
88 break;
89 }
90
92 primitive_size = 2;
94
96 {
98 unsigned int index_pos =
buffer->index_pos, index_count;
100
102 break;
103
104 if (!primitive_size)
105 {
107 primitive_size = 3;
108 }
109
110 index_count =
count * primitive_size;
111 if (
buffer->index_size < index_count)
112 {
116
122 desc.structure_byte_stride = 0;
123
127
131 buffer->index_buffer = new_buffer;
132 index_pos = 0;
133 }
134 else if (
buffer->index_size - index_count < index_pos)
135 {
136 index_pos = 0;
137 }
138
139 box.left = index_pos *
sizeof(*indices);
140 box.right = (index_pos + index_count) *
sizeof(*
indices);
145
147 {
149 TRACE(
" v1: %d v2: %d v3: %d\n",ci->
v1, ci->
v2, ci->
v3);
152 {
153
155 TRACE(
"EDGEENABLE1 ");
157 TRACE(
"EDGEENABLE2 ");
159 TRACE(
"EDGEENABLE3 ");
160
170 }
171
172 switch (primitive_size)
173 {
174 case 3:
176
177 case 2:
180 }
182 }
183
185
193
194 buffer->index_pos = index_pos + index_count;
195 break;
196 }
197
201 break;
202
206 {
209
213
215 {
216 ERR(
"Invalid matrix handle (a %#lx -> %p, b %#lx -> %p, c %#lx -> %p).\n",
218 }
219 else
220 {
221 TRACE(
"dst %p, src1 %p, src2 %p.\n",
a,
b,
c);
223 }
224
226 }
227 break;
228
232 {
235
238 {
239 ERR(
"Invalid matrix handle %#lx.\n", ci->
dwArg[0]);
240 }
241 else
242 {
251 }
252
254 }
255 break;
256
260 {
262
265 WARN(
"Failed to set light state.\n");
266
268 }
269 break;
270
274 {
276
279 WARN(
"Failed to set render state.\n");
280
282 }
283 break;
284
287
289 {
292
293 TRACE(
" start %u, dest %u, count %lu, flags %#lx.\n",
295
297 FIXME(
"D3DPROCESSVERTICES_UPDATEEXTENTS not implemented.\n");
299 FIXME(
"D3DPROCESSVERTICES_NOCOLOR not implemented.\n");
300
302 {
315 break;
316
321 box.bottom =
box.back = 1;
326 break;
327
328 default:
329 FIXME(
"Unhandled vertex processing op %#lx.\n",
op);
330 break;
331 }
332
334 }
335 break;
336
339
341 {
344
346
348 {
350 continue;
351 }
353 {
355 continue;
356 }
357
359 }
360 break;
361
365 goto end_of_buffer;
366
370 {
372
374 {
376 {
380 break;
381 }
382 }
383 }
384 else
385 {
387 {
391 break;
392 }
393 }
394 }
395
397 }
398 break;
399
403 break;
404
408 {
411 }
412 break;
413
414 default:
415 ERR(
"Unhandled OpCode %#x.\n",
current->bOpcode);
417 break;
418 }
419 }
420
421end_of_buffer:
423}
#define IDirect3DDevice3_SetRenderState(p, a, b)
#define IDirect3DDevice3_SetLightState(p, a, b)
#define IDirect3DTexture2_Load(p, a)
#define IDirect3DDevice3_SetTransform(p, a, b)
#define D3DTRIFLAG_EDGEENABLE1
#define D3DPROCESSVERTICES_COPY
#define D3DPROCESSVERTICES_OPMASK
#define D3DPROCESSVERTICES_NOCOLOR
struct _D3DTLVERTEX D3DTLVERTEX
#define D3DPROCESSVERTICES_UPDATEEXTENTS
#define D3DPROCESSVERTICES_TRANSFORMLIGHT
#define D3DPROCESSVERTICES_TRANSFORM
#define D3DTRIFLAG_EDGEENABLE2
void d3d_device_apply_state(struct d3d_device *device, BOOL clear_state)
void multiply_matrix(struct wined3d_matrix *dst, const struct wined3d_matrix *src1, const struct wined3d_matrix *src2)
void * ddraw_get_object(struct ddraw_handle_table *t, DWORD handle, enum ddraw_handle_type type)
void d3d_device_sync_surfaces(struct d3d_device *device)
struct wined3d_vertex_declaration * ddraw_find_decl(struct ddraw *This, DWORD fvf)
const struct wined3d_parent_ops ddraw_null_wined3d_parent_ops
HRESULT CDECL wined3d_buffer_create(struct wined3d_device *device, const struct wined3d_buffer_desc *desc, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_buffer **buffer)
ULONG CDECL wined3d_buffer_decref(struct wined3d_buffer *buffer)
struct wined3d_resource *CDECL wined3d_buffer_get_resource(struct wined3d_buffer *buffer)
void CDECL wined3d_device_context_draw(struct wined3d_device_context *context, unsigned int start_vertex, unsigned int vertex_count, unsigned int start_instance, unsigned int instance_count)
void CDECL wined3d_device_context_set_primitive_type(struct wined3d_device_context *context, enum wined3d_primitive_type primitive_type, unsigned int patch_vertex_count)
HRESULT CDECL wined3d_device_context_copy_sub_resource_region(struct wined3d_device_context *context, struct wined3d_resource *dst_resource, unsigned int dst_sub_resource_idx, unsigned int dst_x, unsigned int dst_y, unsigned int dst_z, struct wined3d_resource *src_resource, unsigned int src_sub_resource_idx, const struct wined3d_box *src_box, unsigned int flags)
void CDECL wined3d_device_context_draw_indexed(struct wined3d_device_context *context, int base_vertex_index, unsigned int start_index, unsigned int index_count, unsigned int start_instance, unsigned int instance_count)
HRESULT CDECL wined3d_device_process_vertices(struct wined3d_device *device, struct wined3d_stateblock *stateblock, UINT src_start_idx, UINT dst_idx, UINT vertex_count, struct wined3d_buffer *dst_buffer, const struct wined3d_vertex_declaration *declaration, uint32_t flags, uint32_t dst_fvf)
HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, uint32_t flags)
#define D3DTRANSFORMSTATE_WORLD
#define D3DTRANSFORMSTATE_VIEW
#define D3DTRANSFORMSTATE_PROJECTION
static void _dump_executedata(const D3DEXECUTEDATA *lpData)
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum const GLvoid * indices
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
struct task_struct * current
D3D11_SHADER_VARIABLE_DESC desc
D3DMATRIXHANDLE hDestMatrix
D3DMATRIXHANDLE hSrcMatrix1
D3DMATRIXHANDLE hSrcMatrix2
D3DLIGHTSTATETYPE dlstLightStateType
D3DTRANSFORMSTATETYPE dtstTransformStateType
D3DRENDERSTATETYPE drstRenderStateType
D3DTEXTUREHANDLE hSrcTexture
D3DTEXTUREHANDLE hDestTexture
void CDECL wined3d_stateblock_set_vertex_declaration(struct wined3d_stateblock *stateblock, struct wined3d_vertex_declaration *declaration)
void CDECL wined3d_stateblock_set_index_buffer(struct wined3d_stateblock *stateblock, struct wined3d_buffer *buffer, enum wined3d_format_id format_id)
void CDECL wined3d_stateblock_set_render_state(struct wined3d_stateblock *stateblock, enum wined3d_render_state state, unsigned int value)
HRESULT CDECL wined3d_stateblock_set_stream_source(struct wined3d_stateblock *stateblock, UINT stream_idx, struct wined3d_buffer *buffer, UINT offset, UINT stride)
@ WINED3D_PT_TRIANGLELIST
#define WINED3D_RESOURCE_ACCESS_GPU
#define WINED3D_MAP_DISCARD
#define WINED3D_MAP_WRITE
#define WINED3D_MAP_NOOVERWRITE
#define WINED3DUSAGE_DYNAMIC
#define WINED3DUSAGE_STATICDECL
#define WINED3D_BIND_INDEX_BUFFER
#define WINED3D_RESOURCE_ACCESS_MAP_W