skia / external / github.com / KhronosGroup / OpenGL-Registry / 6bd92218f5ab5ee6c9fd02c0993dcae3ebb5c063 / . / extensions / SGIX / SGIX_blend_cmultiply.txt

XXX - Not complete yet!!! | |

Name | |

SGIX_blend_cmultiply | |

Name Strings | |

GL_SGIX_blend_cmultiply | |

Version | |

$Date: 1999/04/06 06:51:38 $ $Revision: 1.2 $ | |

Number | |

???? | |

Dependencies | |

EXT_blend_minmax affects the definition of this extension | |

SGIX_COMPLEX or SGIX_REAL pixel formats is required | |

SGIX_FBConfig is required | |

SGIX_cbuffer is required | |

Overview | |

An additional blending equation is specified using the interface defined | |

by EXT_blend_minmax. This equation generates the product of two complex | |

input sources. Multiplying two complex images is useful for image | |

and signal processing applications; for example, it is another means | |

for computing convolution and correlation filters. | |

New Procedures and Functions | |

None | |

New Tokens | |

Accepted by the <mode> parameter of BlendEquationEXT: | |

FUNC_COMPLEX_MULTIPLY_EXT 0x601B | |

Additions to Chapter 2 of the GL Specification (OpenGL Operation) | |

None | |

Additions to Chapter 3 of the GL Specification (Rasterization) | |

None | |

Additions to Chapter 4 of the GL Specification (Per-Fragment Operations | |

and the Framebuffer) | |

An additional blending equation is defined. If BlendEquationEXT is | |

called with <mode> set to FUNC_COMPLEX_MULTIPLY_EXT, the blending equation | |

becomes | |

C_real' = (Cs_real * Cd_real) - (Cs_imaginary * Cd_imaginary) | |

C_imaginary' = (Cs_real * Cd_imaginary) + (Cs_imaginary * Cd_real) | |

where Cs_real and Cs_imaginary are the source real and imaginary | |

components and Cd_real and Cd_imaginary are the destination | |

components. The resulting image will also be composed of | |

real (C_real') and imaginary (C_imaginary') components. | |

In all cases the blending equation is evaluated separately for each | |

color component. | |

Additions to Chapter 5 of the GL Specification (Special Functions) | |

None | |

Additions to Chapter 6 of the GL Specification (State and State Requests) | |

None | |

Additions to the GLX Specification | |

None | |

GLX Protocol | |

None | |

Dependencies on EXT_blend_minmax | |

If this extension is supported, but EXT_blend_minmax is not, then | |

this extension effectively defines the procedure BlendEquationEXT, its | |

parameter FUNC_ADD_EXT, and the query target BLEND_EQUATION_EXT, as | |

described in EXT_blend_minmax. It is therefore as though | |

EXT_blend_minmax were also supported, except that equations MIN_EXT | |

and MAX_EXT are not supported. | |

Errors | |

INVALID_ENUM is generated by BlendEquationEXT if its single parameter | |

is not FUNC_ADD_EXT, MIN_EXT, MAX_EXT, FUNC_SUBTRACT_EXT, | |

FUNC_REVERSE_SUBTRACT_EXT, FUNC_COMPLEX_MULTIPLY_EXT, | |

FUNC_COMPLEX_ADD_EXT, FUNC_COMPLEX_PHASE_EXT or FUNC_COMPLEX_MAGNITUDE_EXT. | |

INVALID_OPERATION is generated if BlendEquationEXT is executed with | |

parameter FUNC_COMPLEX_MULTIPLY_EXT or FUNC_COMPLEX_ADD_EXT and the | |

destination buffer is not an SGIX_cbuffer. | |

INVALID_OPERATION is generated if BlendEquationEXT is executed between | |

the execution of Begin and the corresponding execution to End. | |

New State | |

Get Value Get Command Type Initial Value Attribute | |

--------- ----------- ---- ------------- --------- | |

BLEND_EQUATION_EXT GetIntegerv ?? FUNC_ADD_EXT color-buffer | |

New Implementation Dependent State | |

None |