mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-06 07:57:22 +00:00
wined3d: Move the ffp_attrib_ops to wined3d_gl_info.
They are quite GL-specific.
This commit is contained in:
parent
77e282d7a1
commit
dcdba8d571
|
@ -4018,9 +4018,9 @@ static void WINE_GLAPI generic_float16_4(GLuint idx, const void *data)
|
|||
|
||||
static void wined3d_adapter_init_ffp_attrib_ops(struct wined3d_adapter_gl *adapter_gl)
|
||||
{
|
||||
const struct wined3d_gl_info *gl_info = &adapter_gl->gl_info;
|
||||
struct wined3d_d3d_info *d3d_info = &adapter_gl->a.d3d_info;
|
||||
struct wined3d_ffp_attrib_ops *ops = &d3d_info->ffp_attrib_ops;
|
||||
const struct wined3d_d3d_info *d3d_info = &adapter_gl->a.d3d_info;
|
||||
struct wined3d_gl_info *gl_info = &adapter_gl->gl_info;
|
||||
struct wined3d_ffp_attrib_ops *ops = &gl_info->ffp_attrib_ops;
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < WINED3D_FFP_EMIT_COUNT; ++i)
|
||||
|
|
|
@ -4666,16 +4666,18 @@ static void wined3d_context_gl_draw_primitive_arrays(struct wined3d_context_gl *
|
|||
const struct wined3d_state *state, const void *idx_data, unsigned int idx_size, int base_vertex_idx,
|
||||
unsigned int start_idx, unsigned int count, unsigned int start_instance, unsigned int instance_count)
|
||||
{
|
||||
const struct wined3d_ffp_attrib_ops *ops = &context_gl->c.d3d_info->ffp_attrib_ops;
|
||||
GLenum idx_type = idx_size == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT;
|
||||
const struct wined3d_stream_info *si = &context_gl->c.stream_info;
|
||||
GLenum mode = gl_primitive_type_from_d3d(state->primitive_type);
|
||||
const struct wined3d_gl_info *gl_info = context_gl->gl_info;
|
||||
unsigned int instanced_elements[ARRAY_SIZE(si->elements)];
|
||||
const struct wined3d_ffp_attrib_ops *ops;
|
||||
unsigned int instanced_element_count = 0;
|
||||
const void *indices;
|
||||
unsigned int i, j;
|
||||
|
||||
ops = &gl_info->ffp_attrib_ops;
|
||||
|
||||
indices = (const char *)idx_data + idx_size * start_idx;
|
||||
|
||||
if (!instance_count)
|
||||
|
@ -4840,7 +4842,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context_gl *context_gl,
|
|||
if (idx_size)
|
||||
idx_data = (uint8_t *)wined3d_buffer_load_sysmem(state->index_buffer, &context_gl->c) + state->index_offset;
|
||||
|
||||
ops = &d3d_info->ffp_attrib_ops;
|
||||
ops = &gl_info->ffp_attrib_ops;
|
||||
|
||||
gl_info->gl_ops.gl.p_glBegin(gl_primitive_type_from_d3d(state->primitive_type));
|
||||
|
||||
|
|
|
@ -325,6 +325,20 @@ void wined3d_gl_limits_get_uniform_block_range(const struct wined3d_gl_limits *g
|
|||
#define WINED3D_QUIRK_BROKEN_ARB_FOG 0x00000200
|
||||
#define WINED3D_QUIRK_NO_INDEPENDENT_BIT_DEPTHS 0x00000400
|
||||
|
||||
typedef void (WINE_GLAPI *wined3d_ffp_attrib_func)(const void *data);
|
||||
typedef void (WINE_GLAPI *wined3d_ffp_texcoord_func)(GLenum unit, const void *data);
|
||||
typedef void (WINE_GLAPI *wined3d_generic_attrib_func)(GLuint idx, const void *data);
|
||||
|
||||
struct wined3d_ffp_attrib_ops
|
||||
{
|
||||
wined3d_ffp_attrib_func position[WINED3D_FFP_EMIT_COUNT];
|
||||
wined3d_ffp_attrib_func diffuse[WINED3D_FFP_EMIT_COUNT];
|
||||
wined3d_ffp_attrib_func specular[WINED3D_FFP_EMIT_COUNT];
|
||||
wined3d_ffp_attrib_func normal[WINED3D_FFP_EMIT_COUNT];
|
||||
wined3d_ffp_texcoord_func texcoord[WINED3D_FFP_EMIT_COUNT];
|
||||
wined3d_generic_attrib_func generic[WINED3D_FFP_EMIT_COUNT];
|
||||
};
|
||||
|
||||
struct wined3d_gl_info
|
||||
{
|
||||
unsigned int selected_gl_version;
|
||||
|
@ -337,6 +351,7 @@ struct wined3d_gl_info
|
|||
float filling_convention_offset;
|
||||
|
||||
HGLRC (WINAPI *p_wglCreateContextAttribsARB)(HDC dc, HGLRC share, const GLint *attribs);
|
||||
struct wined3d_ffp_attrib_ops ffp_attrib_ops;
|
||||
struct opengl_funcs gl_ops;
|
||||
struct wined3d_fbo_ops fbo_ops;
|
||||
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
|
||||
#include "objbase.h"
|
||||
#include "wine/wined3d.h"
|
||||
#include "wined3d_gl.h"
|
||||
#include "wine/list.h"
|
||||
#include "wine/rbtree.h"
|
||||
|
||||
|
@ -145,6 +144,8 @@ enum wined3d_ffp_emit_idx
|
|||
WINED3D_FFP_EMIT_COUNT,
|
||||
};
|
||||
|
||||
#include "wined3d_gl.h"
|
||||
|
||||
/* Texture format fixups */
|
||||
|
||||
enum fixup_channel_source
|
||||
|
@ -202,24 +203,9 @@ struct wined3d_d3d_limits
|
|||
float pointsize_max;
|
||||
};
|
||||
|
||||
typedef void (WINE_GLAPI *wined3d_ffp_attrib_func)(const void *data);
|
||||
typedef void (WINE_GLAPI *wined3d_ffp_texcoord_func)(GLenum unit, const void *data);
|
||||
typedef void (WINE_GLAPI *wined3d_generic_attrib_func)(GLuint idx, const void *data);
|
||||
|
||||
struct wined3d_ffp_attrib_ops
|
||||
{
|
||||
wined3d_ffp_attrib_func position[WINED3D_FFP_EMIT_COUNT];
|
||||
wined3d_ffp_attrib_func diffuse[WINED3D_FFP_EMIT_COUNT];
|
||||
wined3d_ffp_attrib_func specular[WINED3D_FFP_EMIT_COUNT];
|
||||
wined3d_ffp_attrib_func normal[WINED3D_FFP_EMIT_COUNT];
|
||||
wined3d_ffp_texcoord_func texcoord[WINED3D_FFP_EMIT_COUNT];
|
||||
wined3d_generic_attrib_func generic[WINED3D_FFP_EMIT_COUNT];
|
||||
};
|
||||
|
||||
struct wined3d_d3d_info
|
||||
{
|
||||
struct wined3d_d3d_limits limits;
|
||||
struct wined3d_ffp_attrib_ops ffp_attrib_ops;
|
||||
uint32_t wined3d_creation_flags;
|
||||
uint32_t xyzrhw : 1;
|
||||
uint32_t emulated_flatshading : 1;
|
||||
|
|
Loading…
Reference in a new issue