Maybe your graphics card does not support it?
This works fine for me:SuperStrict
GLGraphics(640,480)
glewinit()
'
' Check if convolution is supported
Local extensions:String = String.FromCString(Byte Ptr(glGetString(GL_EXTENSIONS))).Replace(" ","~n")
If extensions.Contains( "GL_ARB_imaging" ) = False
Print "GL_ARB_imaging not available"
End
EndIf
If glConvolutionFilter2D = Null
Print "glConvolutionFilter2D not available!"
End
EndIf
'
' Load a pixmap
Local p:TPixmap = LoadPixmap("C:\blitzmax\samples\breakout\media\b-max.png")
'
' Setup convolution filter
Local filter:Float[] = [0.00000067, 0.00002292, 0.00019117, 0.00038771, 0.00019117, 0.00002292, 0.00000067, 0.00002292, 0.00078633, 0.00655965, 0.01330373, 0.00655965, 0.00078633, 0.00002292, 0.00019117, 0.00655965, 0.05472157, 0.11098164, 0.05472157, 0.00655965, 0.00019117, 0.00038771, 0.01330373, 0.11098164, 0.22508352, 0.11098164, 0.01330373, 0.00038771, 0.00019117, 0.00655965, 0.05472157, 0.11098164, 0.05472157, 0.00655965, 0.00019117, 0.00002292, 0.00078633, 0.00655965, 0.01330373, 0.00655965, 0.00078633, 0.00002292, 0.00000067, 0.00002292, 0.00019117, 0.00038771, 0.00019117, 0.00002292, 0.00000067]
Local size:Int = Int(Sqr(filter.length))
glConvolutionFilter2D(GL_CONVOLUTION_2D, GL_LUMINANCE, size, size, GL_LUMINANCE, GL_FLOAT, Varptr(filter[0]) )
glEnable( GL_CONVOLUTION_2D )
'
' Setup view matrix
glOrtho 0,640,480,0,-1,1
'
' Draw the pixmap
glpixelzoom 1.0,-1.0
glRasterPos2i 0,0
glBitmap 0,0,0,0,0,0,Null
glPixelStorei GL_UNPACK_ROW_LENGTH, p.pitch Shr 2
glDrawPixels p.width,p.height,GL_RGBA,GL_UNSIGNED_BYTE,p.pixels
Flip
WaitKey()
End
|