qNq-Alien's picture

[OpenGL] ARB_imaging subset cleanup

Project:The Open Toolkit library
Version:0.9.9-2b
Component:Code
Category:bug report
Priority:normal
Assigned:Unassigned
Status:closed
Description

ConvolutionTarget ,ConvolutionParameter,ColorTableTarget ,ColorTableParameterPName enums are completly empty. its ok ?

Version12Deprecated (what is it ?)- invalid enum parameter for functions
Minmax
GetMinMax
ResetMinmax
GetMinmaxParameter
GetSeparableFilter
Histogram
ResetHistogram
GetHistogramParameter
GetHistogram
SeparableFilter2D

I want use these functions but how ?


Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Inertia's picture

#1

There's always the possibility to cast i.e. GL.Foo( (FooEnum) All.DesiredToken );

Thanks for opening the issue, these functions and their enums have not been cleaned up yet.

the Fiddler's picture

#2

Status:open» confirmed

These functions belong to the imaging subset. We haven't cleaned up this part of the specs yet - as Inertia mentioned, you can cast from the "All" enum until this is implemented.

the Fiddler's picture

#3

Version:all versions» 0.9.x-dev
Priority:critical» normal
Inertia's picture

#4

enum MinMaxTarget
{
GL_MINMAX
}

void ResetMinmax( MinmaxTarget target)

enum MinMaxFormat
{
GL_RED,
GL_GREEN,
GL_BLUE,
GL_ALPHA,
GL_RGB,
GL_BGR,
GL_RGBA,
GL_BGRA,
GL_LUMINANCE,
GL_LUMINANCE_ALPHA
}

enum MinMaxTypes
{
GL_UNSIGNED_BYTE,
GL_BYTE,
GL_BITMAP,
GL_UNSIGNED_SHORT,
GL_SHORT,
GL_UNSIGNED_INT,
GL_INT,
GL_FLOAT,
GL_UNSIGNED_BYTE_3_3_2,
GL_UNSIGNED_BYTE_2_3_3_REV,
GL_UNSIGNED_SHORT_5_6_5,
GL_UNSIGNED_SHORT_5_6_5_REV,
GL_UNSIGNED_SHORT_4_4_4_4,
GL_UNSIGNED_SHORT_4_4_4_4_REV,
GL_UNSIGNED_SHORT_5_5_5_1,
GL_UNSIGNED_SHORT_1_5_5_5_REV,
GL_UNSIGNED_INT_8_8_8_8,
GL_UNSIGNED_INT_8_8_8_8_REV,
GL_UNSIGNED_INT_10_10_10_2, and
GL_UNSIGNED_INT_2_10_10_10_REV
}

void GetMinmax( MinmaxTarget target, bool reset, MinmaxFormat format, MinmaxType types, [Out] void* values)

enum GetMinmaxParameter
{
GL_MINMAX_FORMAT,
GL_MINMAX_SINK
}

void GetMinmaxParameter( MinmaxTarget target, GetMinmaxParameter pname, [Out] int* params)

enum MinmaxInternalFormat
{
GL_ALPHA,
GL_ALPHA4,
GL_ALPHA8,
GL_ALPHA12,
GL_ALPHA16,
GL_LUMINANCE,
GL_LUMINANCE4,
GL_LUMINANCE8,
GL_LUMINANCE12,
GL_LUMINANCE16,
GL_LUMINANCE_ALPHA,
GL_LUMINANCE4_ALPHA4,
GL_LUMINANCE6_ALPHA2,
GL_LUMINANCE8_ALPHA8,
GL_LUMINANCE12_ALPHA4,
GL_LUMINANCE12_ALPHA12,
GL_LUMINANCE16_ALPHA16,
GL_R3_G3_B2,
GL_RGB,
GL_RGB4,
GL_RGB5,
GL_RGB8,
GL_RGB10,
GL_RGB12,
GL_RGB16,
GL_RGBA,
GL_RGBA2,
GL_RGBA4,
GL_RGB5_A1,
GL_RGBA8,
GL_RGB10_A2,
GL_RGBA12,
GL_RGBA16
}

void Minmax( MinmaxTarget target, MinmaxInternalFormat internalformat, bool sink)

Inertia's picture

#5

enum SeparableFilterTarget
{
GL_SEPARABLE_2D
}

enum SeparableFilterFormat
{
GL_RED,
GL_GREEN,
GL_BLUE,
GL_ALPHA,
GL_RGB,
GL_BGR
GL_RGBA,
GL_BGRA,
GL_LUMINANCE,
GL_LUMINANCE_ALPHA
}

enum SeparableFilterType
{
GL_UNSIGNED_BYTE,
GL_BYTE,
GL_BITMAP,
GL_UNSIGNED_SHORT,
GL_SHORT,
GL_UNSIGNED_INT,
GL_INT,
GL_FLOAT,
GL_UNSIGNED_BYTE_3_3_2,
GL_UNSIGNED_BYTE_2_3_3_REV,
GL_UNSIGNED_SHORT_5_6_5,
GL_UNSIGNED_SHORT_5_6_5_REV,
GL_UNSIGNED_SHORT_4_4_4_4,
GL_UNSIGNED_SHORT_4_4_4_4_REV,
GL_UNSIGNED_SHORT_5_5_5_1,
GL_UNSIGNED_SHORT_1_5_5_5_REV,
GL_UNSIGNED_INT_8_8_8_8,
GL_UNSIGNED_INT_8_8_8_8_REV,
GL_UNSIGNED_INT_10_10_10_2,
GL_UNSIGNED_INT_2_10_10_10_REV
}

void GetSeparableFilter( SeparableFilterTarget target, SeparableFilterFormat format, SeparableFilterType type, [Out] void* row, [Out] void* column, [Out, but not used] void * span)

SeparableFilterInternalFormat
{
GL_ALPHA,
GL_ALPHA4,
GL_ALPHA8,
GL_ALPHA12,
GL_ALPHA16,
GL_LUMINANCE,
GL_LUMINANCE4,
GL_LUMINANCE8,
GL_LUMINANCE12,
GL_LUMINANCE16,
GL_LUMINANCE_ALPHA,
GL_LUMINANCE4_ALPHA4,
GL_LUMINANCE6_ALPHA2,
GL_LUMINANCE8_ALPHA8,
GL_LUMINANCE12_ALPHA4,
GL_LUMINANCE12_ALPHA12,
GL_LUMINANCE16_ALPHA16,
GL_INTENSITY,
GL_INTENSITY4,
GL_INTENSITY8,
GL_INTENSITY12,
GL_INTENSITY16,
GL_R3_G3_B2,
GL_RGB,
GL_RGB4,
GL_RGB5,
GL_RGB8,
GL_RGB10,
GL_RGB12,
GL_RGB16,
GL_RGBA,
GL_RGBA2,
GL_RGBA4,
GL_RGB5_A1,
GL_RGBA8,
GL_RGB10_A2,
GL_RGBA12,
GL_RGBA16
}

void glSeparableFilter2D( SeparableFilterTarget target, SeparableFilterInternalFormat internalformat, int width, int height, SeparableFilterFormat format, SeparableFilterType type, [In] void* row, [In] void* column)

Inertia's picture

#6

enum HistogramTarget
{
GL_HISTOGRAM,
GL_PROXY_HISTOGRAM
}

enum HistogramInternalFormat
{
GL_ALPHA,
GL_ALPHA4,
GL_ALPHA8,
GL_ALPHA12,
GL_ALPHA16,
GL_LUMINANCE,
GL_LUMINANCE4,
GL_LUMINANCE8,
GL_LUMINANCE12,
GL_LUMINANCE16,
GL_LUMINANCE_ALPHA,
GL_LUMINANCE4_ALPHA4,
GL_LUMINANCE6_ALPHA2,
GL_LUMINANCE8_ALPHA8,
GL_LUMINANCE12_ALPHA4,
GL_LUMINANCE12_ALPHA12,
GL_LUMINANCE16_ALPHA16,
GL_R3_G3_B2,
GL_RGB,
GL_RGB4,
GL_RGB5,
GL_RGB8,
GL_RGB10,
GL_RGB12,
GL_RGB16,
GL_RGBA,
GL_RGBA2,
GL_RGBA4,
GL_RGB5_A1,
GL_RGBA8,
GL_RGB10_A2,
GL_RGBA12,
GL_RGBA16
}

void Histogram( HistogramTarget target, int width, HistogramInternalFormat internalformat, bool sink)

enum GetHistogramTarget
{
GL_HISTOGRAM,
}

void ResetHistogram( GetHistogramTarget target )

enum HistogramFormat
{
GL_RED,
GL_GREEN,
GL_BLUE,
GL_ALPHA,
GL_RGB,
GL_BGR,
GL_RGBA,
GL_BGRA,
GL_LUMINANCE,
GL_LUMINANCE_ALPHA
}

enum HistogramType
{
GL_UNSIGNED_BYTE,
GL_BYTE,
GL_BITMAP,
GL_UNSIGNED_SHORT,
GL_SHORT,
GL_UNSIGNED_INT,
GL_INT,
GL_FLOAT,
GL_UNSIGNED_BYTE_3_3_2,
GL_UNSIGNED_BYTE_2_3_3_REV,
GL_UNSIGNED_SHORT_5_6_5,
GL_UNSIGNED_SHORT_5_6_5_REV,
GL_UNSIGNED_SHORT_4_4_4_4,
GL_UNSIGNED_SHORT_4_4_4_4_REV,
GL_UNSIGNED_SHORT_5_5_5_1,
GL_UNSIGNED_SHORT_1_5_5_5_REV,
GL_UNSIGNED_INT_8_8_8_8,
GL_UNSIGNED_INT_8_8_8_8_REV,
GL_UNSIGNED_INT_10_10_10_2,
GL_UNSIGNED_INT_2_10_10_10_REV
}

void GetHistogram( GetHistogramTarget target, bool reset, HistogramFormat format, HistogramType type, [Out] void* values)

enum GetHistogramParameter
{
GL_HISTOGRAM_WIDTH,
GL_HISTOGRAM_FORMAT,
GL_HISTOGRAM_RED_SIZE,
GL_HISTOGRAM_GREEN_SIZE,
GL_HISTOGRAM_BLUE_SIZE,
GL_HISTOGRAM_ALPHA_SIZE,
GL_HISTOGRAM_LUMINANCE_SIZE,
GL_HISTOGRAM_SINK
}

void GetHistogramParameter( HistogramTarget target, GetHistogramParameter pname, [Out] int* params)

Inertia's picture

#7

enum ConvolutionTarget
{
GL_CONVOLUTION_1D,
GL_CONVOLUTION_2D,
GL_SEPARABLE_2D
}

enum ConvolutionParameter_Single
{
GL_CONVOLUTION_BORDER_MODE
}

enum ConvolutionParameterValue : int
{
GL_REDUCE,
GL_CONSTANT_BORDER,
GL_REPLICATE_BORDER
}

void ConvolutionParameter( ConvolutionTarget target, ConvolutionParameter_Single pname, ConvolutionParameterValue params);

enum ConvolutionParameter_Array
{
GL_CONVOLUTION_BORDER_COLOR,
GL_CONVOLUTION_FILTER_SCALE,
GL_CONVOLUTION_FILTER_BIAS
}

void ConvolutionParameter( ConvolutionTarget target, ConvolutionParameter_Array pname, [In] Vector4 params);

Note: this is an optimization. ConvolutionParameter_Single is also a valid parameter to the ***fv function but makes not too much sense. http://www.opengl.org/sdk/docs/man/xhtml/glConvolutionParameter.xml

enum ConvolutionFilter1DTarget
{
GL_CONVOLUTION_1D
}

enum ConvolutionFilter2DTarget
{
GL_CONVOLUTION_2D
}

enum ConvolutionFilterInternalFormat
{
GL_ALPHA,
GL_ALPHA4,
GL_ALPHA8,
GL_ALPHA12,
GL_ALPHA16,
GL_LUMINANCE,
GL_LUMINANCE4,
GL_LUMINANCE8,
GL_LUMINANCE12,
GL_LUMINANCE16,
GL_LUMINANCE_ALPHA,
GL_LUMINANCE4_ALPHA4,
GL_LUMINANCE6_ALPHA2,
GL_LUMINANCE8_ALPHA8,
GL_LUMINANCE12_ALPHA4,
GL_LUMINANCE12_ALPHA12,
GL_LUMINANCE16_ALPHA16,
GL_INTENSITY,
GL_INTENSITY4,
GL_INTENSITY8,
GL_INTENSITY12,
GL_INTENSITY16,
GL_R3_G3_B2,
GL_RGB,
GL_RGB4,
GL_RGB5,
GL_RGB8,
GL_RGB10,
GL_RGB12,
GL_RGB16,
GL_RGBA,
GL_RGBA2,
GL_RGBA4,
GL_RGB5_A1,
GL_RGBA8,
GL_RGB10_A2,
GL_RGBA12,
GL_RGBA16
}

enum ConvolutionFilterFormat1D
{
GL_ALPHA,
GL_LUMINANCE,
GL_LUMINANCE_ALPHA,
GL_INTENSITY,
GL_RGB,
GL_RGBA
}

enum ConvolutionFilterFormat2D
{
GL_RED,
GL_GREEN,
GL_BLUE,
GL_ALPHA,
GL_RGB,
GL_BGR,
GL_RGBA,
GL_BGRA,
GL_LUMINANCE,
GL_LUMINANCE_ALPHA
}
enum ConvolutionFilterType
{
GL_UNSIGNED_BYTE,
GL_BYTE,
GL_BITMAP,
GL_UNSIGNED_SHORT,
GL_SHORT,
GL_UNSIGNED_INT,
GL_INT,
GL_FLOAT,
GL_UNSIGNED_BYTE_3_3_2,
GL_UNSIGNED_BYTE_2_3_3_REV,
GL_UNSIGNED_SHORT_5_6_5,
GL_UNSIGNED_SHORT_5_6_5_REV,
GL_UNSIGNED_SHORT_4_4_4_4,
GL_UNSIGNED_SHORT_4_4_4_4_REV,
GL_UNSIGNED_SHORT_5_5_5_1,
GL_UNSIGNED_SHORT_1_5_5_5_REV,
GL_UNSIGNED_INT_8_8_8_8,
GL_UNSIGNED_INT_8_8_8_8_REV,
GL_UNSIGNED_INT_10_10_10_2,
GL_UNSIGNED_INT_2_10_10_10_REV
}

void ConvolutionFilter1D(ConvolutionFilter1DTarget target, ConvolutionFilterInternalFormat internalformat, int width, ConvolutionFilterFormat1D format, ConvolutionFilterType type, [In] void* data)

void ConvolutionFilter2D(ConvolutionFilter2DTarget target, ConvolutionFilterInternalFormat internalformat, int width, int height, ConvolutionFilterFormat2D format, ConvolutionFilterType type, [In] void* data)

enum GetConvolutionParameter
{
GL_CONVOLUTION_BORDER_MODE,
GL_CONVOLUTION_BORDER_COLOR,
GL_CONVOLUTION_FILTER_SCALE,
GL_CONVOLUTION_FILTER_BIAS,
GL_CONVOLUTION_FORMAT,
GL_CONVOLUTION_WIDTH,
GL_CONVOLUTION_HEIGHT,
GL_MAX_CONVOLUTION_WIDTH, or
GL_MAX_CONVOLUTION_HEIGHT
}

void GetConvolutionParameteriv( ConvolutionTarget target, GetConvolutionParameter pname, [Out] int* params)

enum ConvolutionFilterTarget
{
GL_CONVOLUTION_1D,
GL_CONVOLUTION_2D
}

void GetConvolutionFilter( ConvolutionFilterTarget target, ConvolutionFilterFormat2D format, ConvolutionFilterType type, [Out] void* image)

void CopyConvolutionFilter1D( ConvolutionFilter1DTarget target, ConvolutionFilterInternalFormat internalformat, int x, int y, int width)

void CopyConvolutionFilter2D( ConvolutionFilter2DTarget target, ConvolutionFilterInternalFormat internalformat, int x, int y, int width, int height)

the Fiddler's picture

#9

Title:Several functions with invalid parameters» [OpenGL] ARB_imaging subset cleanup
Status:confirmed» fixed

Committed to rev. 2248 with slight modifications for the sake of simplicity (i.e. use PixelFormat instead of adding new MinmaxFormat, SeparableFilterFormat, etc enums). Also added some values missing from enums related to SGI_color_table.

Bugs notwithstanding, version 1.2 is now 100% cleaned up. Only version 3.2 remains!

Inertia's picture

#10

Excellent :) I'll file new issues for the GL 3.2 related stuff, should have done it for the above too but it didn't look that much at first ... at least it's several posts which split the functionality.

the Fiddler's picture

#11

Version:0.9.x-dev» 0.9.9-2b
Status:fixed» closed

Closing issues fixed in 0.9.9-2.