|
| | WINE_DEFAULT_DEBUG_CHANNEL (d3d) |
| |
| static void | state_undefined (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| void | state_nop (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | fillmode (const struct wined3d_rasterizer_state *r, const struct wined3d_gl_info *gl_info) |
| |
| static void | cullmode (const struct wined3d_rasterizer_state *r, const struct wined3d_gl_info *gl_info) |
| |
| void | state_shademode (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_ditherenable (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| GLenum | wined3d_gl_compare_func (enum wined3d_cmp_func f) |
| |
| static GLenum | gl_blend_op (const struct wined3d_gl_info *gl_info, enum wined3d_blend_op op) |
| |
| static void | blendop (const struct wined3d_state *state, const struct wined3d_gl_info *gl_info) |
| |
| static GLenum | gl_blend_factor (enum wined3d_blend factor, const struct wined3d_format *dst_format) |
| |
| static void | gl_blend_from_d3d (GLenum *src_blend, GLenum *dst_blend, enum wined3d_blend d3d_src_blend, enum wined3d_blend d3d_dst_blend, const struct wined3d_format *rt_format) |
| |
| static void | state_blend_factor_w (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_blend_factor (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static BOOL | is_blend_enabled (struct wined3d_context *context, const struct wined3d_state *state, UINT index) |
| |
| static void | blend (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | set_color_mask (const struct wined3d_gl_info *gl_info, UINT index, DWORD mask) |
| |
| static void | blend_db2 (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | blend_dbb (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| void | state_clipping (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | renderstate_stencil_twosided (struct wined3d_context *context, GLint face, GLint func, GLint ref, GLuint mask, GLint stencilFail, GLint depthFail, GLint stencilPass) |
| |
| static GLenum | gl_stencil_op (enum wined3d_stencil_op op) |
| |
| static void | state_stencil (struct wined3d_context *context, const struct wined3d_state *state) |
| |
| static void | depth (struct wined3d_context *context, const struct wined3d_state *state) |
| |
| static void | depth_stencil (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | depth_stencil_2s (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_linepattern (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_linepattern_w (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_msaa_w (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_msaa (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | line_antialias (const struct wined3d_rasterizer_state *r, const struct wined3d_gl_info *gl_info) |
| |
| static void | scissor (const struct wined3d_rasterizer_state *r, const struct wined3d_gl_info *gl_info) |
| |
| static void | depthbias (struct wined3d_context *context, const struct wined3d_state *state) |
| |
| static void | state_sample_mask (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_sample_mask_w (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_compute_shader (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_shader (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| void | clipplane (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| void | ffp_vertex_update_clip_plane_constants (const struct wined3d_gl_info *gl_info, const struct wined3d_state *state) |
| |
| static void | streamsrc (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | vdecl_miscpart (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | viewport_miscpart (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | viewport_miscpart_cc (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | scissorrect (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | indexbuffer (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | depth_clip (const struct wined3d_rasterizer_state *r, const struct wined3d_gl_info *gl_info) |
| |
| static void | rasterizer (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | rasterizer_cc (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| void | state_srgbwrite (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_cb (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_cb_warn (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_shader_resource_binding (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_cs_resource_binding (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_uav_binding (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_cs_uav_binding (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_uav_warn (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_so (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | state_so_warn (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static BOOL | ffp_none_context_alloc (struct wined3d_context *context) |
| |
| static void | ffp_none_context_free (struct wined3d_context *context) |
| |
| static void | none_pipe_apply_draw_state (struct wined3d_context *context, const struct wined3d_state *state) |
| |
| static void | none_pipe_disable (const struct wined3d_context *context) |
| |
| static void * | none_alloc (const struct wined3d_shader_backend_ops *shader_backend, void *shader_priv) |
| |
| static void | none_free (struct wined3d_device *device, struct wined3d_context *context) |
| |
| static void | vp_none_get_caps (const struct wined3d_adapter *adapter, struct wined3d_vertex_caps *caps) |
| |
| static unsigned int | vp_none_get_emul_mask (const struct wined3d_adapter *adapter) |
| |
| static void | fp_none_get_caps (const struct wined3d_adapter *adapter, struct fragment_caps *caps) |
| |
| static unsigned int | fp_none_get_emul_mask (const struct wined3d_adapter *adapter) |
| |
| static BOOL | fp_none_color_fixup_supported (struct color_fixup_desc fixup) |
| |
| static unsigned int | num_handlers (const APPLYSTATEFUNC *funcs) |
| |
| static void | multistate_apply_2 (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | multistate_apply_3 (struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) |
| |
| static void | prune_invalid_states (struct wined3d_state_entry *state_table, const struct wined3d_d3d_info *d3d_info) |
| |
| static void | validate_state_table (struct wined3d_state_entry *state_table) |
| |
| HRESULT | compile_state_table (struct wined3d_state_entry *state_table, APPLYSTATEFUNC **dev_multistate_funcs, const struct wined3d_d3d_info *d3d_info, const BOOL *supported_extensions, const struct wined3d_vertex_pipe_ops *vertex, const struct wined3d_fragment_pipe_ops *fragment, const struct wined3d_state_entry_template *misc) |
| |
Definition at line 337 of file ffp_gl.c.
338{
342 GLenum src_blend, dst_blend;
344
346 {
347 if (
b &&
b->desc.alpha_to_coverage)
349 else
351 checkGLcall(
"glEnable GL_SAMPLE_ALPHA_TO_COVERAGE");
352 }
353
354 if (
b &&
b->desc.independent)
355 WARN(
"Independent blend is not supported by this GL implementation.\n");
356
357 mask =
b ?
b->desc.rt[0].writemask : 0xf;
358
364
366 {
369 return;
370 }
371
374
375 rt_format =
state->fb.render_targets[0]->format;
376
377 gl_blend_from_d3d(&src_blend, &dst_blend,
b->desc.rt[0].src,
b->desc.rt[0].dst, rt_format);
378
380
381 if (
b->desc.rt[0].src !=
b->desc.rt[0].src_alpha ||
b->desc.rt[0].dst !=
b->desc.rt[0].dst_alpha)
382 {
383 GLenum src_blend_alpha, dst_blend_alpha;
384
385
387 {
388 WARN(
"Unsupported in local OpenGL implementation: glBlendFuncSeparate.\n");
389 return;
390 }
391
392 gl_blend_from_d3d(&src_blend_alpha, &dst_blend_alpha,
b->desc.rt[0].src_alpha,
b->desc.rt[0].dst_alpha, rt_format);
393
394 GL_EXTCALL(glBlendFuncSeparate(src_blend, dst_blend, src_blend_alpha, dst_blend_alpha));
396 }
397 else
398 {
399 TRACE(
"glBlendFunc src=%x, dst=%x.\n", src_blend, dst_blend);
400 gl_info->
gl_ops.gl.p_glBlendFunc(src_blend, dst_blend);
402 }
403}
static BOOL is_blend_enabled(struct wined3d_context *context, const struct wined3d_state *state, UINT index)
static void blendop(const struct wined3d_state *state, const struct wined3d_gl_info *gl_info)
static void gl_blend_from_d3d(GLenum *src_blend, GLenum *dst_blend, enum wined3d_blend d3d_src_blend, enum wined3d_blend d3d_dst_blend, const struct wined3d_format *rt_format)
#define GL_SAMPLE_ALPHA_TO_COVERAGE
GLboolean GLboolean GLboolean b
const struct wined3d_gl_info * gl_info
BOOL supported[WINED3D_GL_EXT_COUNT]
struct opengl_funcs gl_ops
#define WINED3DCOLORWRITEENABLE_RED
#define WINED3DCOLORWRITEENABLE_BLUE
#define WINED3DCOLORWRITEENABLE_ALPHA
#define WINED3DCOLORWRITEENABLE_GREEN
@ EXT_BLEND_FUNC_SEPARATE
Referenced by blend_db2(), blend_dbb(), cf2_doBlend(), cf2_interpT2CharString(), cff_blend_build_vector(), cff_blend_check_vector(), cff_blend_doBlend(), cff_parse_blend(), cff_parse_vsindex(), draw_graphics(), GdipGetLinePresetBlend(), GdipGetPathGradientBlend(), GdipGetPathGradientPresetBlend(), GdipSetLinePresetBlend(), GdipSetPathGradientBlend(), GdipSetPathGradientPresetBlend(), IntUpdateLayeredWindowI(), NtUserUpdateLayeredWindow(), parse_blend_axis_types(), parse_blend_design_map(), parse_blend_design_positions(), parse_weight_vector(), t1_allocate_blend(), t1_decoder_init(), T1_Done_Blend(), T1_Get_MM_Blend(), T1_Get_MM_Var(), T1_Get_MM_WeightVector(), T1_Get_Multi_Master(), T1_Get_Var_Design(), t1_load_keyword(), t1_set_mm_blend(), T1_Set_MM_Design(), T1_Set_MM_WeightVector(), test_32bit_ddb(), test_emf_AlphaBlend(), test_GdiAlphaBlend(), vk_blend_factor_from_d3d12(), and vk_blend_factor_from_wined3d().
Definition at line 766 of file ffp_gl.c.
767{
770 GLuint stencil_write_mask = 0;
771
774
775 if (
state->fb.depth_stencil)
776 stencil_write_mask =
d ?
d->desc.stencil_write_mask : ~0
u;
777
778 gl_info->
gl_ops.gl.p_glStencilMask(stencil_write_mask);
780}
static void state_stencil(struct wined3d_context *context, const struct wined3d_state *state)
GLint GLint GLsizei GLsizei GLsizei depth
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 * u
Referenced by check_ID3DXRenderToSurface(), d3d12_command_list_BeginRenderPass(), d3d8_device_GetDepthStencilSurface(), d3d8_device_SetRenderTarget(), d3d9_device_GetDepthStencilSurface(), d3d9_device_SetDepthStencilSurface(), D3DXCreateRenderToEnvMap(), D3DXCreateRenderToSurface(), DECLARE_INTERFACE_(), ffp_blitter_clear_rendertargets(), vk_blitter_clear_rendertargets(), vkd3d_get_format(), wined3d_context_gl_apply_fbo_state(), wined3d_context_gl_create_fbo_entry(), wined3d_context_gl_find_fbo_entry(), wined3d_context_gl_generate_fbo_key(), wined3d_context_gl_reuse_fbo_entry(), wined3d_context_vk_get_render_pass(), and wined3d_render_pass_key_vk_init().