diff --git a/harbour/ChangeLog b/harbour/ChangeLog index b59df32e23..42f67468c5 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,36 @@ The license applies to all entries newer than 2009-04-28. */ +2012-07-05 00:43 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + + contrib/hbqt/qtopengl + + contrib/hbqt/qtopengl/doc + + contrib/hbqt/qtopengl/doc/en + + contrib/hbqt/qtopengl/hbqt_init.cpp + + contrib/hbqt/qtopengl/hbqtopengl.ch + + contrib/hbqt/qtopengl/hbqtopengl.hbc + + contrib/hbqt/qtopengl/hbqtopengl.hbm + + contrib/hbqt/qtopengl/hbqtopengl.hbp + + contrib/hbqt/qtopengl/hbqtopengl.hbx + + contrib/hbqt/qtopengl/hbqtopengls.hbp + + contrib/hbqt/qtopengl/qth + + contrib/hbqt/qtopengl/qth/filelist.hbm + + contrib/hbqt/qtopengl/qth/QGL.qth + + contrib/hbqt/qtopengl/qth/QGLBuffer.qth + + contrib/hbqt/qtopengl/qth/QGLColormap.qth + + contrib/hbqt/qtopengl/qth/QGLContext.qth + + contrib/hbqt/qtopengl/qth/QGLFormat.qth + + contrib/hbqt/qtopengl/qth/QGLFramebufferObject.qth + + contrib/hbqt/qtopengl/qth/QGLFramebufferObjectFormat.qth + + contrib/hbqt/qtopengl/qth/QGLFunctions.qth + + contrib/hbqt/qtopengl/qth/QGLPixelBuffer.qth + + contrib/hbqt/qtopengl/qth/QGLShader.qth + + contrib/hbqt/qtopengl/qth/QGLShaderProgram.qth + + contrib/hbqt/qtopengl/qth/QGLWidget.qth + + Added: QtOpenGL module contained classes. + + * contrib/hbqt/hbmk2_qt.hb + ! Tuned to adopt some new constants used in QtOpenGL module. + 2012-07-04 15:14 UTC+0200 Viktor Szakats (harbour syenar.net) * doc/en/compiler.txt * doc/en/var.txt diff --git a/harbour/contrib/hbqt/hbmk2_qt.hb b/harbour/contrib/hbqt/hbmk2_qt.hb index 53bdafa9f6..881d79f959 100644 --- a/harbour/contrib/hbqt/hbmk2_qt.hb +++ b/harbour/contrib/hbqt/hbmk2_qt.hb @@ -1095,8 +1095,8 @@ CREATE CLASS HbQtSource VAR cFunc VAR cTrMode - VAR cInt INIT "int,qint16,quint16,short,ushort,unsigned" - VAR cIntLong INIT "qint32,quint32,QRgb" + VAR cInt INIT "int,qint16,quint16,short,ushort,unsigned,GLuint,GLenum,GLint,GLsizei,GLclampf" + VAR cIntLong INIT "qint32,quint32,QRgb,qgl_GLsizeiptr,qgl_GLintptr" VAR cIntLongLong INIT "qint64,quint64,qlonglong,qulonglong,ulong" VAR lPaintEvent INIT .f. @@ -1573,10 +1573,10 @@ METHOD HbQtSource:build() AAdd( aLine, "" ) AAdd( aLine, "static void s_registerMethods( HB_USHORT uiClass )" ) AAdd( aLine, "{" ) - AAdd( aLine, ' hb_clsAdd( uiClass, ' + PadR( '"new"', 35) +', HB_FUNCNAME( ' + PadR( Upper( "NEW" ), 35) + ' ) );' ) + AAdd( aLine, ' hb_clsAdd( uiClass, ' + PadR( '"new"', 40 ) +', HB_FUNCNAME( ' + PadR( Upper( "NEW" ), 40 ) + ' ) );' ) FOR EACH oMtd IN ::aMethods IF ! Empty( oMtd:cHBFunc ) - AAdd( aLine, ' hb_clsAdd( uiClass, ' + PadR( '"' + oMtd:cHBFunc +'"', 35 ) +', HB_FUNCNAME( ' + PadR( Upper( oMtd:cHBFunc ), 35) + ' ) );' ) + AAdd( aLine, ' hb_clsAdd( uiClass, ' + PadR( '"' + oMtd:cHBFunc +'"', 40 ) +', HB_FUNCNAME( ' + PadR( Upper( oMtd:cHBFunc ), 40 ) + ' ) );' ) ENDIF NEXT AAdd( aLine, "}" ) @@ -2335,13 +2335,13 @@ METHOD HbQtSource:parseProto( cProto, fBody_ ) oArg:cDoc := "n" + oMtd:cDocNM oArg:cTypeHB := "N" - CASE oArg:cCast $ "double,qreal" .AND. oArg:lFar - AAdd( oMtd:aPre, { "qreal qr" + oMtd:cDocNM + " = 0;", oMtd:nHBIdx, "qr" + oMtd:cDocNM, "hb_stornd" } ) + CASE oArg:cCast $ "double,qreal,float,GLfloat" .AND. oArg:lFar + AAdd( oMtd:aPre, { oArg:cCast + " qr" + oMtd:cDocNM + " = 0;", oMtd:nHBIdx, "qr" + oMtd:cDocNM, "hb_stornd" } ) oArg:cBody := "&qr" + oMtd:cDocNM oArg:cDoc := "@n" + oMtd:cDocNM oArg:cTypeHB := "N*" - CASE oArg:cCast $ "double,qreal,float" + CASE oArg:cCast $ "double,qreal,float,GLfloat" s := "hb_parnd( " + cHBIdx + " )" IF ! Empty( oArg:cDefault ) oArg:cBody := "( HB_ISNUM( " + cHBIdx + " ) ? " + s + " : " + oArg:cDefault + " )" @@ -2406,13 +2406,13 @@ METHOD HbQtSource:parseProto( cProto, fBody_ ) oArg:cDoc := "n" + oMtd:cDocNM oArg:cTypeHB := "N" - CASE oArg:cCast == "bool" .AND. oArg:lFar + CASE oArg:cCast $ "bool,GLboolean" .AND. oArg:lFar AAdd( oMtd:aPre, { "bool i" + oMtd:cDocNM + " = 0;", oMtd:nHBIdx, "i" + oMtd:cDocNM, "hb_stornl" } ) oArg:cBody := "&i" + oMtd:cDocNM oArg:cDoc := "@l" + oMtd:cDocNM oArg:cTypeHB := "L" - CASE oArg:cCast == "bool" + CASE oArg:cCast $ "bool,GLboolean" s := "hb_parl( " + cHBIdx + " )" IF ! Empty( oArg:cDefault ) oArg:cBody := iif( oArg:cDefault == "false", s, "hb_parldef( " + cHBIdx + ", true )" ) @@ -2422,6 +2422,11 @@ METHOD HbQtSource:parseProto( cProto, fBody_ ) oArg:cDoc := "l" + oMtd:cDocNM oArg:cTypeHB := "L" + CASE oArg:cCast == "void" .AND. oArg:lFar /* and it must be void * */ + oArg:cBody := "hb_parptr( " + cHBIdx + " )" + oArg:cDoc := "n" + oMtd:cDocNM + oArg:cTypeHB := "N" + CASE oArg:cCast == "QString" IF oArg:lFar oArg:cBody := "( QString * ) hb_parstr_utf8( " + cHBIdx + ", &pText%%%, NULL )" @@ -2636,7 +2641,7 @@ METHOD HbQtSource:buildCppCode( oMtd ) oRet:lConst .AND. ; oRet:lConstL cRef := oRet:cCast - oMtd:cCmd := hbqtgen_Get_Command_1( oRet:cCast, oMtd:cCmn ) + oMtd:cCmd := hbqtgen_Get_Command_1( oRet:cCast, oMtd:cCmn, oMtd:nDetachRet != 9 ) oMtd:cPrgRet := "o" + oMtd:cDocNMRet CASE oRet:lAnd .AND. oRet:lConst @@ -2849,9 +2854,16 @@ METHOD HbqtArgument:new( cTxt, cQtObject, enum_, lConstL, lIsRetArg ) // Helper Functions /*----------------------------------------------------------------------*/ -STATIC FUNCTION hbqtgen_Get_Command_1( cWgt, cCmn ) - - RETURN 'hb_itemReturnRelease( hbqt_bindGetHbObject( NULL, ' + 'new ' + cWgt + '( *( ' + cCmn + ' ) )' + ', "' + 'HB_' + Upper( cWgt ) + '", hbqt_del_' + cWgt + ', ' + qth_get_bits( cWgt, .t. ) + ' ) )' +STATIC FUNCTION hbqtgen_Get_Command_1( cWgt, cCmn, lNew ) + IF lNew == NIL + lNew := .T. + ENDIF + IF lNew + RETURN 'hb_itemReturnRelease( hbqt_bindGetHbObject( NULL, ' + 'new ' + cWgt + '( *( ' + cCmn + ' ) )' + ', "' + 'HB_' + Upper( cWgt ) + '", hbqt_del_' + cWgt + ', ' + qth_get_bits( cWgt, .t. ) + ' ) )' + ELSE + RETURN 'hb_itemReturnRelease( hbqt_bindGetHbObject( NULL, ' + '( void * ) ' + cCmn + ', "' + 'HB_' + Upper( cWgt ) + '", hbqt_del_' + cWgt + ', ' + qth_get_bits( cWgt, .f. ) + ' ) )' + ENDIF + RETURN "" /*----------------------------------------------------------------------*/ @@ -2869,7 +2881,6 @@ STATIC FUNCTION hbqtgen_Get_Command( cWgt, cCmn, lNew, isRetDetached ) ELSE RETURN 'hb_itemReturnRelease( hbqt_bindGetHbObject( NULL, ' + cCmn + ', "' + 'HB_' + Upper( cWgt ) + '", hbqt_del_' + cWgt + ', ' + qth_get_bits( cWgt, isRetDetached ) + ' ) )' ENDIF - RETURN "" /*----------------------------------------------------------------------*/ @@ -3383,6 +3394,10 @@ STATIC FUNCTION qth_is_QObject( cWidget ) aadd( aQObjects, "QTreeWidget" ) aadd( aQObjects, "QDeclarativeView" ) aadd( aQObjects, "QTextBrowser" ) + + aadd( aQObjects, "QGLShader" ) + aadd( aQObjects, "QGLShaderProgram" ) + aadd( aQObjects, "QGLWidget" ) ENDIF RETURN ascan( aQObjects, {|e| e == cWidget } ) > 0 diff --git a/harbour/contrib/hbqt/qtopengl/hbqt_init.cpp b/harbour/contrib/hbqt/qtopengl/hbqt_init.cpp new file mode 100644 index 0000000000..ed07c6fb8a --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/hbqt_init.cpp @@ -0,0 +1,98 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * QT wrapper main header + * + * Copyright 2009 Marcos Antonio Gambeta (marcosgambeta at gmail dot com) + * Copyright 2009 Pritpal Bedi (pritpal@vouchcac.com) + * Copyright 2010 Viktor Szakats (harbour syenar.net) + * www - http://harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +/*----------------------------------------------------------------------*/ + +#include "hbqt.h" +#include "hbqtinit.h" + +#include "hbvm.h" +#include "hbinit.h" + +#if QT_VERSION >= 0x040500 + +/*----------------------------------------------------------------------*/ + +static void hbqt_registerCallbacks( void ) +{ +} + +/*----------------------------------------------------------------------*/ + +HB_FUNC( __HBQTOPENGL ) {;} + +static void hbqt_lib_init( void * cargo ) +{ + HB_SYMBOL_UNUSED( cargo ); + + hbqt_registerCallbacks(); +} + +static void hbqt_lib_exit( void * cargo ) +{ + HB_SYMBOL_UNUSED( cargo ); +} + +HB_CALL_ON_STARTUP_BEGIN( _hbqtopengl_init_ ) + hb_vmAtInit( hbqt_lib_init, NULL ); + hb_vmAtExit( hbqt_lib_exit, NULL ); +HB_CALL_ON_STARTUP_END( _hbqtopengl_init_ ) + +#if defined( HB_PRAGMA_STARTUP ) + #pragma startup _hbqtopengl_init_ +#elif defined( HB_DATASEG_STARTUP ) + #define HB_DATASEG_BODY HB_DATASEG_FUNC( _hbqtopengl_init_ ) + #include "hbiniseg.h" +#endif + +#endif diff --git a/harbour/contrib/hbqt/qtopengl/hbqtopengl.ch b/harbour/contrib/hbqt/qtopengl/hbqtopengl.ch new file mode 100644 index 0000000000..3ae69e9002 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/hbqtopengl.ch @@ -0,0 +1,145 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * + * Copyright 2009-2012 Pritpal Bedi + * http://harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ + +#ifndef _HBQTOPENGL_CH + #define _HBQTOPENGL_CH + +#define QGL_DoubleBuffer 0x0001 // Specifies the use of double buffering. +#define QGL_DepthBuffer 0x0002 // Enables the use of a depth buffer. +#define QGL_Rgba 0x0004 // Specifies that the context should use RGBA as its pixel format. +#define QGL_AlphaChannel 0x0008 // Enables the use of an alpha channel. +#define QGL_AccumBuffer 0x0010 // Enables the use of an accumulation buffer. +#define QGL_StencilBuffer 0x0020 // Enables the use of a stencil buffer. +#define QGL_StereoBuffers 0x0040 // Enables the use of a stereo buffers for use with visualization hardware. +#define QGL_DirectRendering 0x0080 // Specifies that the context is used for direct rendering to a display. +#define QGL_HasOverlay 0x0100 // Enables the use of an overlay. +#define QGL_SampleBuffers 0x0200 // Enables the use of sample buffers. +#define QGL_DeprecatedFunctions 0x0400 // Enables the use of deprecated functionality for OpenGL 3.x contexts. A context with deprecated functionality enabled is called a full context in the OpenGL specification. +#define QGL_SingleBuffer QGLDoubleBuffer<<16 // Specifies the use of a single buffer, as opposed to double buffers. +#define QGL_NoDepthBuffer QGLDepthBuffer<<16 // Disables the use of a depth buffer. +#define QGL_ColorIndex QGLRgba<<16 // Specifies that the context should use a color index as its pixel format. +#define QGL_NoAlphaChannel QGLAlphaChannel<<16 // Disables the use of an alpha channel. +#define QGL_NoAccumBuffer QGLAccumBuffer<<16 // Disables the use of an accumulation buffer. +#define QGL_NoStencilBuffer QGLStencilBuffer<<16 // Disables the use of a stencil buffer. +#define QGL_NoStereoBuffers QGLStereoBuffers<<16 // Disables the use of stereo buffers. +#define QGL_IndirectRendering QGLDirectRendering<<16 // Specifies that the context is used for indirect rendering to a buffer. +#define QGL_NoOverlay QGLHasOverlay<<16 // Disables the use of an overlay. +#define QGL_NoSampleBuffers QGLSampleBuffers<<16 // Disables the use of sample buffers. +#define QGL_NoDeprecatedFunctions QGLDeprecatedFunctions<<16 // Disables the use of deprecated functionality for OpenGL 3.x contexts. A context with deprecated functionality disabled is called a forward compatible context in the OpenGL specification. + +#define QGLBuffer_ReadOnly 0x88B8 // The buffer will be mapped for reading only. +#define QGLBuffer_WriteOnly 0x88B9 // The buffer will be mapped for writing only. +#define QGLBuffer_ReadWrite 0x88BA // The buffer will be mapped for reading and writing + +#define QGLBuffer_VertexBuffer 0x8892 // Vertex buffer object for use when specifying vertex arrays. +#define QGLBuffer_IndexBuffer 0x8893 // Index buffer object for use with glDrawElements(). +#define QGLBuffer_PixelPackBuffer 0x88EB // Pixel pack buffer object for reading pixel data from the GL server (for example, with glReadPixels()). Not supported under OpenGL/ES. +#define QGLBuffer_PixelUnpackBuffer 0x88EC // Pixel unpack buffer object for writing pixel data to the GL server (for example, with glTexImage2D()). Not supported under OpenGL/ES. + +#define QGLBuffer_StreamDraw 0x88E0 // The data will be set once and used a few times for drawing operations. Under OpenGL/ES 1.1 this is identical to StaticDraw. +#define QGLBuffer_StreamRead 0x88E1 // The data will be set once and used a few times for reading data back from the GL server. Not supported under OpenGL/ES. +#define QGLBuffer_StreamCopy 0x88E2 // The data will be set once and used a few times for reading data back from the GL server for use in further drawing operations. Not supported under OpenGL/ES. +#define QGLBuffer_StaticDraw 0x88E4 // The data will be set once and used many times for drawing operations. +#define QGLBuffer_StaticRead 0x88E5 // The data will be set once and used many times for reading data back from the GL server. Not supported under OpenGL/ES. +#define QGLBuffer_StaticCopy 0x88E6 // The data will be set once and used many times for reading data back from the GL server for use in further drawing operations. Not supported under OpenGL/ES. +#define QGLBuffer_DynamicDraw 0x88E8 // The data will be modified repeatedly and used many times for drawing operations. +#define QGLBuffer_DynamicRead 0x88E9 // The data will be modified repeatedly and used many times for reading data back from the GL server. Not supported under OpenGL/ES. +#define QGLBuffer_DynamicCopy 0x88EA // The data will be modified repeatedly and used many times for reading data back from the GL server for use in further drawing operations. Not supported under OpenGL/ES. + +#define QGLContext_NoBindOption 0x0000 // Don't do anything, pass the texture straight through. +#define QGLContext_InvertedYBindOption 0x0001 // Specifies that the texture should be flipped over the X axis so that the texture coordinate 0,0 corresponds to the top left corner. Inverting the texture implies a deep copy prior to upload. +#define QGLContext_MipmapBindOption 0x0002 // Specifies that bindTexture() should try to generate mipmaps. If the GL implementation supports the GL_SGIS_generate_mipmap extension, mipmaps will be automatically generated for the texture. Mipmap generation is only supported for the GL_TEXTURE_2D target. +#define QGLContext_PremultipliedAlphaBindOption 0x0004 // Specifies that the image should be uploaded with premultiplied alpha and does a conversion accordingly. +#define QGLContext_LinearFilteringBindOption 0x0008 // Specifies that the texture filtering should be set to GL_LINEAR. Default is GL_NEAREST. If mipmap is also enabled, filtering will be set to GL_LINEAR_MIPMAP_LINEAR. +#define QGLContext_DefaultBindOption LinearFilteringBindOption | InvertedYBindOption | MipmapBindOption // In Qt 4.5 and earlier, bindTexture() would mirror the image and automatically generate mipmaps. This option helps preserve this default behavior. + +#define QGLFormat_NoProfile 0 // OpenGL version is lower than 3.2. +#define QGLFormat_CoreProfile 1 // Functionality deprecated in OpenGL version 3.0 is not available. +#define QGLFormat_CompatibilityProfile 2 // Functionality from earlier OpenGL versions is available. + +#define QGLFormat_OpenGL_Version_None 0x00000000 // If no OpenGL is present or if no OpenGL context is current. +#define QGLFormat_OpenGL_Version_1_1 00000001 // OpenGL version 1.1 or higher is present. +#define QGLFormat_OpenGL_Version_1_2 00000002 // OpenGL version 1.2 or higher is present. +#define QGLFormat_OpenGL_Version_1_3 00000004 // OpenGL version 1.3 or higher is present. +#define QGLFormat_OpenGL_Version_1_4 00000008 // OpenGL version 1.4 or higher is present. +#define QGLFormat_OpenGL_Version_1_5 00000010 // OpenGL version 1.5 or higher is present. +#define QGLFormat_OpenGL_Version_2_0 00000020 // OpenGL version 2.0 or higher is present. Note that version 2.0 supports all the functionality of version 1.5. +#define QGLFormat_OpenGL_Version_2_1 00000040 // OpenGL version 2.1 or higher is present. +#define QGLFormat_OpenGL_Version_3_0 00001000 // OpenGL version 3.0 or higher is present. +#define QGLFormat_OpenGL_Version_3_1 00002000 // OpenGL version 3.1 or higher is present. Note that OpenGL version 3.1 or higher does not necessarily support all the features of version 3.0 and lower. +#define QGLFormat_OpenGL_Version_3_2 00004000 // OpenGL version 3.2 or higher is present. +#define QGLFormat_OpenGL_Version_3_3 00008000 // OpenGL version 3.3 or higher is present. +#define QGLFormat_OpenGL_Version_4_0 00010000 // OpenGL version 4.0 or higher is present. +#define QGLFormat_OpenGL_ES_CommonLite_Version_1_0 0x00000100 // OpenGL ES version 1.0 Common Lite or higher is present. +#define QGLFormat_OpenGL_ES_Common_Version_1_0 0x00000080 // OpenGL ES version 1.0 Common or higher is present. The Common profile supports all the features of Common Lite. +#define QGLFormat_OpenGL_ES_CommonLite_Version_1_1 0x00000400 // OpenGL ES version 1.1 Common Lite or higher is present. +#define QGLFormat_OpenGL_ES_Common_Version_1_1 0x00000200 // OpenGL ES version 1.1 Common or higher is present. The Common profile supports all the features of Common Lite. +#define QGLFormat_OpenGL_ES_Version_2_0 0x00000800 // OpenGL ES version 2.0 or higher is present. Note that OpenGL ES version 2.0 does not support all the features of OpenGL ES 1.x. So if OpenGL_ES_Version_2_0 is returned, none of the ES 1.x flags are returned. + +#define QGLFunctions_Multitexture 0x0001 // glActiveTexture() function is available. +#define QGLFunctions_Shaders 0x0002 // Shader functions are available. +#define QGLFunctions_Buffers 0x0004 // Vertex and index buffer functions are available. +#define QGLFunctions_Framebuffers 0x0008 // Framebuffer object functions are available. +#define QGLFunctions_BlendColor 0x0010 // glBlendColor() is available. +#define QGLFunctions_BlendEquation 0x0020 // glBlendEquation() is available. +#define QGLFunctions_BlendEquationSeparate 0x0040 // glBlendEquationSeparate() is available. +#define QGLFunctions_BlendFuncSeparate 0x0080 // glBlendFuncSeparate() is available. +#define QGLFunctions_BlendSubtract 0x0100 // Blend subtract mode is available. +#define QGLFunctions_CompressedTextures 0x0200 // Compressed texture functions are available. +#define QGLFunctions_Multisample 0x0400 // glSampleCoverage() function is available. +#define QGLFunctions_StencilSeparate 0x0800 // Separate stencil functions are available. +#define QGLFunctions_NPOTTextures 0x1000 // Non power of two textures are available. + +#define QGLShader_Vertex 0x0001 // Vertex shader written in the OpenGL Shading Language (GLSL). +#define QGLShader_Fragment 0x0002 // Fragment shader written in the OpenGL Shading Language (GLSL). +#define QGLShader_Geometry 0x0004 // Geometry shaders written in the OpenGL Shading Language (GLSL), based on the GL_EXT_geometry_shader4 extension. + +#endif diff --git a/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbc b/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbc new file mode 100644 index 0000000000..9a13d7be19 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbc @@ -0,0 +1,22 @@ +# +# $Id$ +# + +# --------------------------------------------------------------- +# Copyright 2010 Viktor Szakats (harbour syenar.net) +# See COPYING for licensing terms. +# --------------------------------------------------------------- + +incpaths=. + +libs=../qtcore/hbqtcore.hbc +libs=../qtgui/hbqtgui.hbc +libs=../qtnetwork/hbqtnetwork.hbc + +{!HB_STATIC_QT}libs=${_HB_DYNPREF}${hb_name}${_HB_DYNSUFF} +{!HB_STATIC_QT&(allwin|os2)}libs=QtOpenGL4 +{!HB_STATIC_QT&(linux|beos|symbian)}libs=QtOpenGL +{!HB_STATIC_QT&darwin}frameworks=QtOpenGL +{HB_STATIC_QT&allwin}libs=${_HB_DYNPREF}${hb_name}s${_HB_DYNSUFF} +{HB_STATIC_QT&linux|beos}libs=${_HB_DYNPREF}${hb_name}${_HB_DYNSUFF} +{HB_STATIC_QT&(allwin|linux|beos)}libs=QtOpenGL diff --git a/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbm b/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbm new file mode 100644 index 0000000000..5ea183dba3 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbm @@ -0,0 +1,26 @@ +# +# $Id$ +# + +-i. + +qth/filelist.hbm + +hbqtopengl.hbx + +hbqt_init.cpp + +../qtcore/hbqtcore.hbc +../qtgui/hbqtgui.hbc +../qtnetwork/hbqtnetwork.hbc + +-deppkgname=qtopengl:QtOpenGL +-depkeyhead=qtopengl:QtOpenGL/QtOpenGL +-depcontrol=qtopengl:${HB_WITH_QT} +{!darwin}-depincpath=qtopengl:/usr/include/qt4 +{!darwin}-depincpath=qtopengl:/usr/lib/qt4/include +{!darwin}-depincpath=qtopengl:/usr/include +{bsd}-depincpath=qt:/usr/local/include/qt4 +{darwin}-depincpath=qtopengl:/Developer/qt/include +{darwin}-depincpath=qtopengl:/Library/Frameworks +{darwin}-depincpath=qtopengl:/usr/local/include diff --git a/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbp b/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbp new file mode 100644 index 0000000000..125b3c59d7 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbp @@ -0,0 +1,12 @@ +# +# $Id$ +# + +../hbqt_common.hbm + +hbqtopengl.hbm + +-instfile=inc:hbqtopengl.ch +-instfile=inc:hbqtopengl.hbx + +hbqtopengls.hbp diff --git a/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbx b/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbx new file mode 100644 index 0000000000..04b570efee --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/hbqtopengl.hbx @@ -0,0 +1,56 @@ +/* + * $Id$ + */ + +/* -------------------------------------------------------------------- */ +/* NOTE: You can add manual override which functions to include or */ +/* exclude from automatically generated EXTERNAL/DYNAMIC list. */ +/* Syntax: // HB_FUNC_INCLUDE */ +/* // HB_FUNC_EXCLUDE */ +/* -------------------------------------------------------------------- */ + +/* -------------------------------------------------------------------- */ +/* WARNING: Automatically generated code below. DO NOT EDIT! */ +/* Regenerate using hbmk2 '-hbx=' option. */ +/* -------------------------------------------------------------------- */ + +#ifndef __HBEXTERN_CH__HBQTOPENGL__ +#define __HBEXTERN_CH__HBQTOPENGL__ + +#if defined( __HBEXTREQ__ ) .OR. defined( __HBEXTERN__HBQTOPENGL__ANNOUNCE ) + ANNOUNCE __HBEXTERN__HBQTOPENGL__ +#endif + +#if defined( __HBEXTREQ__ ) .OR. defined( __HBEXTERN__HBQTOPENGL__REQUEST ) + #command DYNAMIC => EXTERNAL +#endif + +DYNAMIC HB_QGLBUFFER +DYNAMIC HB_QGLCOLORMAP +DYNAMIC HB_QGLCONTEXT +DYNAMIC HB_QGLFORMAT +DYNAMIC HB_QGLFRAMEBUFFEROBJECT +DYNAMIC HB_QGLFRAMEBUFFEROBJECTFORMAT +DYNAMIC HB_QGLFUNCTIONS +DYNAMIC HB_QGLPIXELBUFFER +DYNAMIC HB_QGLSHADER +DYNAMIC HB_QGLSHADERPROGRAM +DYNAMIC HB_QGLWIDGET +DYNAMIC QGLBUFFER +DYNAMIC QGLCOLORMAP +DYNAMIC QGLCONTEXT +DYNAMIC QGLFORMAT +DYNAMIC QGLFRAMEBUFFEROBJECT +DYNAMIC QGLFRAMEBUFFEROBJECTFORMAT +DYNAMIC QGLFUNCTIONS +DYNAMIC QGLPIXELBUFFER +DYNAMIC QGLSHADER +DYNAMIC QGLSHADERPROGRAM +DYNAMIC QGLWIDGET +DYNAMIC __HBQTOPENGL + +#if defined( __HBEXTREQ__ ) .OR. defined( __HBEXTERN__HBQTOPENGL__REQUEST ) + #uncommand DYNAMIC => EXTERNAL +#endif + +#endif diff --git a/harbour/contrib/hbqt/qtopengl/hbqtopengls.hbp b/harbour/contrib/hbqt/qtopengl/hbqtopengls.hbp new file mode 100644 index 0000000000..7628ef7b63 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/hbqtopengls.hbp @@ -0,0 +1,7 @@ +# +# $Id$ +# + +../hbqt_commons.hbm + +hbqtopengl.hbm diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGL.qth b/harbour/contrib/hbqt/qtopengl/qth/QGL.qth new file mode 100644 index 0000000000..adc13f304a --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGL.qth @@ -0,0 +1,52 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = +QObject = no + + + + + +#include + + +/* + * + */ +HB_FUNC( QT_ ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QGL" ) ) + { + __HB_RETPTRGC__( new QGL( *hbqt_par_QGL( 1 ) ) ); + } + else + { + __HB_RETPTRGC__( new QGL() ); + } +} + + + + + + + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLBuffer.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLBuffer.qth new file mode 100644 index 0000000000..53a8c76c68 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLBuffer.qth @@ -0,0 +1,79 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = +QObject = no +Version = 0x040700 + + + + + +#include + + +/* + * QGLBuffer () + * QGLBuffer ( QGLBuffer::Type type ) + * QGLBuffer ( const QGLBuffer & other ) + * ~QGLBuffer () + */ +HB_FUNC( QT_QGLBUFFER ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QGLBUFFER" ) ) + { + __HB_RETPTRGC__( new QGLBuffer( *hbqt_par_QGLBuffer( 1 ) ) ); + } + else if( hb_pcount() == 1 && HB_ISNUM( 1 ) ) + { + __HB_RETPTRGC__( new QGLBuffer( ( QGLBuffer::Type ) hb_parni( 1 ) ) ); + } + else + { + __HB_RETPTRGC__( new QGLBuffer() ); + } +} + + + +enum Access { ReadOnly, WriteOnly, ReadWrite } +enum Type { VertexBuffer, IndexBuffer, PixelPackBuffer, PixelUnpackBuffer } +enum UsagePattern { StreamDraw, StreamRead, StreamCopy, StaticDraw, ..., DynamicCopy } + + + +void allocate ( const void * data, int count ) +void allocate ( int count ) +bool bind () +GLuint bufferId () const +bool create () +void destroy () +bool isCreated () const +void * map ( QGLBuffer::Access access ) +bool read ( int offset, void * data, int count ) +void release () +void setUsagePattern ( QGLBuffer::UsagePattern value ) +int size () const +QGLBuffer::Type type () const +bool unmap () +QGLBuffer::UsagePattern usagePattern () const +void write ( int offset, const void * data, int count ) + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLColormap.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLColormap.qth new file mode 100644 index 0000000000..b54f76ff68 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLColormap.qth @@ -0,0 +1,63 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = +QObject = no + + + + + +#include + + +/* + * QGLColormap () + * QGLColormap ( const QGLColormap & map ) + * ~QGLColormap () + */ +HB_FUNC( QT_QGLCOLORMAP ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QGLCOLORMAP" ) ) + { + __HB_RETPTRGC__( new QGLColormap( *hbqt_par_QGLColormap( 1 ) ) ); + } + else + { + __HB_RETPTRGC__( new QGLColormap() ); + } +} + + + + + + +QColor entryColor ( int idx ) const +QRgb entryRgb ( int idx ) const +int find ( QRgb color ) const +int findNearest ( QRgb color ) const +bool isEmpty () const +void setEntries ( int count, const QRgb * colors, int base = 0 ) +void setEntry ( int idx, QRgb color ) +void setEntry ( int idx, const QColor & color ) +int size () const + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLContext.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLContext.qth new file mode 100644 index 0000000000..180c54994c --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLContext.qth @@ -0,0 +1,76 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = +QObject = no + + + + + +#include + + +/* + * QGLContext ( const QGLFormat & format ) + * virtual ~QGLContext () + */ +HB_FUNC( QT_QGLCONTEXT ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QGLFORMAT" ) ) + { + __HB_RETPTRGC__( new QGLContext( *hbqt_par_QGLFormat( 1 ) ) ); + } + else + { + hb_errRT_BASE( EG_ARG, 9999, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); + } +} + + + +enum BindOption { NoBindOption, InvertedYBindOption, MipmapBindOption, PremultipliedAlphaBindOption, LinearFilteringBindOption, DefaultBindOption } +flags BindOptions + + + +GLuint bindTexture ( const QImage & image, GLenum target, GLint format, BindOptions options ) +GLuint bindTexture ( const QString & fileName ) +GLuint bindTexture ( const QImage & image, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA ) +GLuint bindTexture ( const QPixmap & pixmap, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA ) +GLuint bindTexture ( const QPixmap & pixmap, GLenum target, GLint format, BindOptions options ) +virtual bool create ( const QGLContext * shareContext = 0 ) +void deleteTexture ( GLuint id ) +QPaintDevice * device () const +virtual void doneCurrent () +void drawTexture ( const QRectF & target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D ) +void drawTexture ( const QPointF & point, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D ) +QGLFormat format () const +void * getProcAddress ( const QString & proc ) const +bool isSharing () const +bool isValid () const +virtual void makeCurrent () +QColor overlayTransparentColor () const +QGLFormat requestedFormat () const +void reset () +void setFormat ( const QGLFormat & format ) +virtual void swapBuffers () const + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLFormat.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLFormat.qth new file mode 100644 index 0000000000..4ff97fd943 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLFormat.qth @@ -0,0 +1,124 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = +QObject = no + + + + + +#include + + +/* + * QGLFormat () + * QGLFormat ( QGL::FormatOptions options, int plane = 0 ) + * QGLFormat ( const QGLFormat & other ) + * ~QGLFormat () + */ +HB_FUNC( QT_QGLFORMAT ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QGLFORMAT" ) ) + { + __HB_RETPTRGC__( new QGLFormat( *hbqt_par_QGLFormat( 1 ) ) ); + } + else if( hb_pcount() == 1 && HB_ISNUM( 1 ) ) + { + __HB_RETPTRGC__( new QGLFormat( ( QGL::FormatOptions ) hb_parni( 1 ) ) ); + } + else if( hb_pcount() == 2 && HB_ISNUM( 1 ) && HB_ISNUM( 2 ) ) + { + __HB_RETPTRGC__( new QGLFormat( ( QGL::FormatOptions ) hb_parni( 1 ), hb_parni( 2 ) ) ); + } + else + { + __HB_RETPTRGC__( new QGLFormat() ); + } +} + + + +enum OpenGLContextProfile { NoProfile, CoreProfile, CompatibilityProfile } +enum OpenGLVersionFlag { OpenGL_Version_None, OpenGL_Version_1_1, OpenGL_Version_1_2, OpenGL_Version_1_3, ..., OpenGL_ES_Version_2_0 } +flags OpenGLVersionFlags + + + +bool accum () const +int accumBufferSize () const +bool alpha () const +int alphaBufferSize () const +int blueBufferSize () const +bool depth () const +int depthBufferSize () const +bool directRendering () const +bool doubleBuffer () const +int greenBufferSize () const +bool hasOverlay () const +int majorVersion () const +int minorVersion () const +int plane () const +OpenGLContextProfile profile () const +int redBufferSize () const +bool rgba () const +bool sampleBuffers () const +int samples () const +void setAccum ( bool enable ) +void setAccumBufferSize ( int size ) +void setAlpha ( bool enable ) +void setAlphaBufferSize ( int size ) +void setBlueBufferSize ( int size ) +void setDepth ( bool enable ) +void setDepthBufferSize ( int size ) +void setDirectRendering ( bool enable ) +void setDoubleBuffer ( bool enable ) +void setGreenBufferSize ( int size ) +void setOption ( QGL::FormatOptions opt ) +void setOverlay ( bool enable ) +void setPlane ( int plane ) +void setProfile ( OpenGLContextProfile profile ) +void setRedBufferSize ( int size ) +void setRgba ( bool enable ) +void setSampleBuffers ( bool enable ) +void setSamples ( int numSamples ) +void setStencil ( bool enable ) +void setStencilBufferSize ( int size ) +void setStereo ( bool enable ) +void setSwapInterval ( int interval ) +void setVersion ( int major, int minor ) +bool stencil () const +int stencilBufferSize () const +bool stereo () const +int swapInterval () const +bool testOption ( QGL::FormatOptions opt ) const + +QGLFormat defaultFormat () +QGLFormat defaultOverlayFormat () +//QGLFormat fromPlatformWindowFormat ( const QPlatformWindowFormat & format ) +bool hasOpenGL () +bool hasOpenGLOverlays () +OpenGLVersionFlags openGLVersionFlags () +void setDefaultFormat ( const QGLFormat & f ) +void setDefaultOverlayFormat ( const QGLFormat & f ) +//QPlatformWindowFormat toPlatformWindowFormat ( const QGLFormat & format ) + + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLFramebufferObject.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLFramebufferObject.qth new file mode 100644 index 0000000000..c9bce6c88c --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLFramebufferObject.qth @@ -0,0 +1,78 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = QPaintDevice +QObject = no + + + + + +#include + + +/* + * QGLFramebufferObject ( const QSize & size, GLenum target = GL_TEXTURE_2D ) + * QGLFramebufferObject ( int width, int height, GLenum target = GL_TEXTURE_2D ) + * QGLFramebufferObject ( const QSize & size, const QGLFramebufferObjectFormat & format ) + * QGLFramebufferObject ( int width, int height, const QGLFramebufferObjectFormat & format ) + * QGLFramebufferObject ( int width, int height, Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internal_format = GL_RGBA8 ) + * QGLFramebufferObject ( const QSize & size, Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internal_format = GL_RGBA8 ) + * virtual ~QGLFramebufferObject () + */ +HB_FUNC( QT_QGLFRAMEBUFFEROBJECT ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QSIZE" ) ) + { + __HB_RETPTRGC__( new QGLFramebufferObject( *hbqt_par_QSize( 1 ) ) ); + } + else + { + hb_errRT_BASE( EG_ARG, 9999, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); + } +} + + + +enum Attachment { NoAttachment, CombinedDepthStencil, Depth } + + + +Attachment attachment () const +bool bind () +void drawTexture ( const QRectF & target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D ) +void drawTexture ( const QPointF & point, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D ) +QGLFramebufferObjectFormat format () const +GLuint handle () const +bool isBound () const +bool isValid () const +bool release () +QSize size () const +GLuint texture () const +QImage toImage () const + +virtual QPaintEngine * paintEngine () const + +//void blitFramebuffer ( QGLFramebufferObject * target, const QRect & targetRect, QGLFramebufferObject * source, const QRect & sourceRect, GLbitfield buffers = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST ) +bool hasOpenGLFramebufferBlit () +bool hasOpenGLFramebufferObjects () + + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLFramebufferObjectFormat.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLFramebufferObjectFormat.qth new file mode 100644 index 0000000000..0a8ed58132 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLFramebufferObjectFormat.qth @@ -0,0 +1,65 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = +QObject = no +Version = 0x40600 + + + + + +#include + + +/* + * QGLFramebufferObjectFormat () + * QGLFramebufferObjectFormat ( const QGLFramebufferObjectFormat & other ) + * ~QGLFramebufferObjectFormat () + */ +HB_FUNC( QT_QGLFRAMEBUFFEROBJECTFORMAT ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QGLFRAMEBUFFEROBJECTFORMAT" ) ) + { + __HB_RETPTRGC__( new QGLFramebufferObjectFormat( *hbqt_par_QGLFramebufferObjectFormat( 1 ) ) ); + } + else + { + __HB_RETPTRGC__( new QGLFramebufferObjectFormat() ); + } +} + + + + + + +QGLFramebufferObject::Attachment attachment () const +GLenum internalTextureFormat () const +bool mipmap () const +int samples () const +void setAttachment ( QGLFramebufferObject::Attachment attachment ) +void setInternalTextureFormat ( GLenum internalTextureFormat ) +void setMipmap ( bool enabled ) +void setSamples ( int samples ) +void setTextureTarget ( GLenum target ) +GLenum textureTarget () const + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLFunctions.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLFunctions.qth new file mode 100644 index 0000000000..9d83cb4cb8 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLFunctions.qth @@ -0,0 +1,158 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = +QObject = no +Version = 0x040800 + + + + + +#include + + +/* + * QGLFunctions () + * QGLFunctions ( const QGLContext * context ) + * ~QGLFunctions () + */ +HB_FUNC( QT_QGLFUNCTIONS ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QGLCONTEXT" ) ) + { + __HB_RETPTRGC__( new QGLFunctions( hbqt_par_QGLContext( 1 ) ) ); + } + else + { + __HB_RETPTRGC__( new QGLFunctions() ); + } +} + + + +enum OpenGLFeature { Multitexture, Shaders, Buffers, Framebuffers, ..., NPOTTextures } +flags OpenGLFeatures + + + +void glActiveTexture ( GLenum texture ) +void glAttachShader ( GLuint program, GLuint shader ) +void glBindAttribLocation ( GLuint program, GLuint index, const char * name ) +void glBindBuffer ( GLenum target, GLuint buffer ) +void glBindFramebuffer ( GLenum target, GLuint framebuffer ) +void glBindRenderbuffer ( GLenum target, GLuint renderbuffer ) +void glBlendColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) +void glBlendEquation ( GLenum mode ) +void glBlendEquationSeparate ( GLenum modeRGB, GLenum modeAlpha ) +void glBlendFuncSeparate ( GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha ) +void glBufferData ( GLenum target, qgl_GLsizeiptr size, const void * data, GLenum usage ) +void glBufferSubData ( GLenum target, qgl_GLintptr offset, qgl_GLsizeiptr size, const void * data ) +GLenum glCheckFramebufferStatus ( GLenum target ) +void glClearDepthf ( GLclampf depth ) +void glCompileShader ( GLuint shader ) +void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data ) +void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data ) +GLuint glCreateProgram () +GLuint glCreateShader ( GLenum type ) +void glDeleteBuffers ( GLsizei n, const GLuint * buffers ) +void glDeleteFramebuffers ( GLsizei n, const GLuint * framebuffers ) +void glDeleteProgram ( GLuint program ) +void glDeleteRenderbuffers ( GLsizei n, const GLuint * renderbuffers ) +void glDeleteShader ( GLuint shader ) +void glDepthRangef ( GLclampf zNear, GLclampf zFar ) +void glDetachShader ( GLuint program, GLuint shader ) +void glDisableVertexAttribArray ( GLuint index ) +void glEnableVertexAttribArray ( GLuint index ) +void glFramebufferRenderbuffer ( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) +void glFramebufferTexture2D ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) +void glGenBuffers ( GLsizei n, GLuint * buffers ) +void glGenFramebuffers ( GLsizei n, GLuint * framebuffers ) +void glGenRenderbuffers ( GLsizei n, GLuint * renderbuffers ) +void glGenerateMipmap ( GLenum target ) +void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei * length, GLint * size, GLenum * type, char * name ) +void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei * length, GLint * size, GLenum * type, char * name ) +void glGetAttachedShaders ( GLuint program, GLsizei maxcount, GLsizei * count, GLuint * shaders ) +int glGetAttribLocation ( GLuint program, const char * name ) +void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint * params ) +void glGetFramebufferAttachmentParameteriv ( GLenum target, GLenum attachment, GLenum pname, GLint * params ) +void glGetProgramInfoLog ( GLuint program, GLsizei bufsize, GLsizei * length, char * infolog ) +void glGetProgramiv ( GLuint program, GLenum pname, GLint * params ) +void glGetRenderbufferParameteriv ( GLenum target, GLenum pname, GLint * params ) +void glGetShaderInfoLog ( GLuint shader, GLsizei bufsize, GLsizei * length, char * infolog ) +void glGetShaderPrecisionFormat ( GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision ) +void glGetShaderSource ( GLuint shader, GLsizei bufsize, GLsizei * length, char * source ) +void glGetShaderiv ( GLuint shader, GLenum pname, GLint * params ) +int glGetUniformLocation ( GLuint program, const char * name ) +void glGetUniformfv ( GLuint program, GLint location, GLfloat * params ) +void glGetUniformiv ( GLuint program, GLint location, GLint * params ) +//void glGetVertexAttribPointerv ( GLuint index, GLenum pname, void ** pointer ) +void glGetVertexAttribfv ( GLuint index, GLenum pname, GLfloat * params ) +void glGetVertexAttribiv ( GLuint index, GLenum pname, GLint * params ) +GLboolean glIsBuffer ( GLuint buffer ) +GLboolean glIsFramebuffer ( GLuint framebuffer ) +GLboolean glIsProgram ( GLuint program ) +GLboolean glIsRenderbuffer ( GLuint renderbuffer ) +GLboolean glIsShader ( GLuint shader ) +void glLinkProgram ( GLuint program ) +void glReleaseShaderCompiler () +void glRenderbufferStorage ( GLenum target, GLenum internalformat, GLsizei width, GLsizei height ) +void glSampleCoverage ( GLclampf value, GLboolean invert ) +void glShaderBinary ( GLint n, const GLuint * shaders, GLenum binaryformat, const void * binary, GLint length ) +//void glShaderSource ( GLuint shader, GLsizei count, const char ** string, const GLint * length ) +void glStencilFuncSeparate ( GLenum face, GLenum func, GLint ref, GLuint mask ) +void glStencilMaskSeparate ( GLenum face, GLuint mask ) +void glStencilOpSeparate ( GLenum face, GLenum fail, GLenum zfail, GLenum zpass ) +void glUniform1f ( GLint location, GLfloat x ) +void glUniform1fv ( GLint location, GLsizei count, const GLfloat * v ) +void glUniform1i ( GLint location, GLint x ) +void glUniform1iv ( GLint location, GLsizei count, const GLint * v ) +void glUniform2f ( GLint location, GLfloat x, GLfloat y ) +void glUniform2fv ( GLint location, GLsizei count, const GLfloat * v ) +void glUniform2i ( GLint location, GLint x, GLint y ) +void glUniform2iv ( GLint location, GLsizei count, const GLint * v ) +void glUniform3f ( GLint location, GLfloat x, GLfloat y, GLfloat z ) +void glUniform3fv ( GLint location, GLsizei count, const GLfloat * v ) +void glUniform3i ( GLint location, GLint x, GLint y, GLint z ) +void glUniform3iv ( GLint location, GLsizei count, const GLint * v ) +void glUniform4f ( GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) +void glUniform4fv ( GLint location, GLsizei count, const GLfloat * v ) +void glUniform4i ( GLint location, GLint x, GLint y, GLint z, GLint w ) +void glUniform4iv ( GLint location, GLsizei count, const GLint * v ) +void glUniformMatrix2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat * value ) +void glUniformMatrix3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat * value ) +void glUniformMatrix4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat * value ) +void glUseProgram ( GLuint program ) +void glValidateProgram ( GLuint program ) +void glVertexAttrib1f ( GLuint indx, GLfloat x ) +void glVertexAttrib1fv ( GLuint indx, const GLfloat * values ) +void glVertexAttrib2f ( GLuint indx, GLfloat x, GLfloat y ) +void glVertexAttrib2fv ( GLuint indx, const GLfloat * values ) +void glVertexAttrib3f ( GLuint indx, GLfloat x, GLfloat y, GLfloat z ) +void glVertexAttrib3fv ( GLuint indx, const GLfloat * values ) +void glVertexAttrib4f ( GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) +void glVertexAttrib4fv ( GLuint indx, const GLfloat * values ) +void glVertexAttribPointer ( GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * ptr ) +bool hasOpenGLFeature ( QGLFunctions::OpenGLFeature feature ) const +void initializeGLFunctions ( const QGLContext * context = 0 ) +QGLFunctions::OpenGLFeatures openGLFeatures () const + + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLPixelBuffer.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLPixelBuffer.qth new file mode 100644 index 0000000000..80d8ae26f8 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLPixelBuffer.qth @@ -0,0 +1,75 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = QPaintDevice +QObject = no + + + + + +#include + + +/* + * QGLPixelBuffer ( const QSize & size, const QGLFormat & format = QGLFormat::defaultFormat(), QGLWidget * shareWidget = 0 ) + * QGLPixelBuffer ( int width, int height, const QGLFormat & format = QGLFormat::defaultFormat(), QGLWidget * shareWidget = 0 ) + * virtual ~QGLPixelBuffer () + */ +HB_FUNC( QT_QGLPIXELBUFFER ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QSIZE" ) ) + { + __HB_RETPTRGC__( new QGLPixelBuffer( *hbqt_par_QSize( 1 ) ) ); + } + else + { + hb_errRT_BASE( EG_ARG, 9999, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); + } +} + + + + + + +GLuint bindTexture ( const QImage & image, GLenum target = GL_TEXTURE_2D ) +GLuint bindTexture ( const QPixmap & pixmap, GLenum target = GL_TEXTURE_2D ) +GLuint bindTexture ( const QString & fileName ) +bool bindToDynamicTexture ( GLuint texture_id ) +void deleteTexture ( GLuint texture_id ) +bool doneCurrent () +void drawTexture ( const QRectF & target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D ) +void drawTexture ( const QPointF & point, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D ) +QGLFormat format () const +GLuint generateDynamicTexture () const +//Qt::HANDLE handle () const +bool isValid () const +bool makeCurrent () +void releaseFromDynamicTexture () +QSize size () const +QImage toImage () const +void updateDynamicTexture ( GLuint texture_id ) const + +virtual QPaintEngine * paintEngine () const + +bool hasOpenGLPbuffers () + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLShader.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLShader.qth new file mode 100644 index 0000000000..a53f89bb52 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLShader.qth @@ -0,0 +1,73 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = QObject +QObject = yes +Version = 0x040600 + + + + + +#include + + +/* + * QGLShader ( QGLShader::ShaderType type, QObject * parent = 0 ) + * QGLShader ( QGLShader::ShaderType type, const QGLContext * context, QObject * parent = 0 ) + * virtual ~QGLShader () + */ +HB_FUNC( QT_QGLSHADER ) +{ + if( hb_pcount() == 2 && HB_ISNUM( 1 ) && hbqt_par_isDerivedFrom( 2, "QOBJECT" ) ) + { + __HB_RETPTRGC__( new QGLShader( ( QGLShader::ShaderType ) hb_parni( 1 ), hbqt_par_QObject( 2 ) ) ); + } + else if( hb_pcount() == 1 && HB_ISNUM( 1 ) ) + { + __HB_RETPTRGC__( new QGLShader( ( QGLShader::ShaderType ) hb_parni( 1 ) ) ); + } + else + { + hb_errRT_BASE( EG_ARG, 9999, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); + } +} + + + +flags ShaderType +enum ShaderTypeBit { Vertex, Fragment, Geometry } + + + +//bool compileSourceCode ( const char * source ) +bool compileSourceCode ( const QByteArray & source ) +bool compileSourceCode ( const QString & source ) +bool compileSourceFile ( const QString & fileName ) +bool isCompiled () const +QString log () const +GLuint shaderId () const +QGLShader::ShaderType shaderType () const +QByteArray sourceCode () const + +bool hasOpenGLShaders ( ShaderType type, const QGLContext * context = 0 ) + + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLShaderProgram.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLShaderProgram.qth new file mode 100644 index 0000000000..0afb92ee40 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLShaderProgram.qth @@ -0,0 +1,207 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = QObject +QObject = yes +Version = 0x040600 + + + + + +#include + + +/* + * QGLShaderProgram ( QObject * parent = 0 ) + * QGLShaderProgram ( const QGLContext * context, QObject * parent = 0 ) + * virtual ~QGLShaderProgram () + */ +HB_FUNC( QT_QGLSHADERPROGRAM ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QOBJECT" ) ) + { + __HB_RETPTRGC__( new QGLShaderProgram( hbqt_par_QObject( 1 ) ) ); + } + else + { + __HB_RETPTRGC__( new QGLShaderProgram() ); + } +} + + + + + + +bool addShader ( QGLShader * shader ) +//bool addShaderFromSourceCode ( QGLShader::ShaderType type, const char * source ) +bool addShaderFromSourceCode ( QGLShader::ShaderType type, const QByteArray & source ) +bool addShaderFromSourceCode ( QGLShader::ShaderType type, const QString & source ) +bool addShaderFromSourceFile ( QGLShader::ShaderType type, const QString & fileName ) +//int attributeLocation ( const char * name ) const +int attributeLocation ( const QByteArray & name ) const +int attributeLocation ( const QString & name ) const +bool bind () +//void bindAttributeLocation ( const char * name, int location ) +void bindAttributeLocation ( const QByteArray & name, int location ) +void bindAttributeLocation ( const QString & name, int location ) +void disableAttributeArray ( int location ) +void disableAttributeArray ( const char * name ) +void enableAttributeArray ( int location ) +void enableAttributeArray ( const char * name ) +GLenum geometryInputType () const +GLenum geometryOutputType () const +int geometryOutputVertexCount () const +bool isLinked () const +virtual bool link () +QString log () const +int maxGeometryOutputVertices () const +GLuint programId () const +void release () +void removeAllShaders () +void removeShader ( QGLShader * shader ) +void setAttributeArray ( int location, const GLfloat * values, int tupleSize, int stride = 0 ) +void setAttributeArray ( int location, const QVector2D * values, int stride = 0 ) +void setAttributeArray ( int location, const QVector3D * values, int stride = 0 ) +void setAttributeArray ( int location, const QVector4D * values, int stride = 0 ) +void setAttributeArray ( int location, GLenum type, const void * values, int tupleSize, int stride = 0 ) +void setAttributeArray ( const char * name, const GLfloat * values, int tupleSize, int stride = 0 ) +void setAttributeArray ( const char * name, const QVector2D * values, int stride = 0 ) +void setAttributeArray ( const char * name, const QVector3D * values, int stride = 0 ) +void setAttributeArray ( const char * name, const QVector4D * values, int stride = 0 ) +void setAttributeArray ( const char * name, GLenum type, const void * values, int tupleSize, int stride = 0 ) +void setAttributeBuffer ( int location, GLenum type, int offset, int tupleSize, int stride = 0 ) +void setAttributeBuffer ( const char * name, GLenum type, int offset, int tupleSize, int stride = 0 ) +void setAttributeValue ( int location, GLfloat value ) +void setAttributeValue ( int location, GLfloat x, GLfloat y ) +void setAttributeValue ( int location, GLfloat x, GLfloat y, GLfloat z ) +void setAttributeValue ( int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) +void setAttributeValue ( int location, const QVector2D & value ) +void setAttributeValue ( int location, const QVector3D & value ) +void setAttributeValue ( int location, const QVector4D & value ) +void setAttributeValue ( int location, const QColor & value ) +void setAttributeValue ( int location, const GLfloat * values, int columns, int rows ) +void setAttributeValue ( const char * name, GLfloat value ) +void setAttributeValue ( const char * name, GLfloat x, GLfloat y ) +void setAttributeValue ( const char * name, GLfloat x, GLfloat y, GLfloat z ) +void setAttributeValue ( const char * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) +void setAttributeValue ( const char * name, const QVector2D & value ) +void setAttributeValue ( const char * name, const QVector3D & value ) +void setAttributeValue ( const char * name, const QVector4D & value ) +void setAttributeValue ( const char * name, const QColor & value ) +void setAttributeValue ( const char * name, const GLfloat * values, int columns, int rows ) +void setGeometryInputType ( GLenum inputType ) +void setGeometryOutputType ( GLenum outputType ) +void setGeometryOutputVertexCount ( int count ) + +//void setUniformValue ( int location, GLfloat value ) +void setUniformValue ( const char * name, const QPointF & point ) +void setUniformValue ( const char * name, const QSize & size ) +void setUniformValue ( const char * name, const QSizeF & size ) +void setUniformValue ( const char * name, const QMatrix2x2 & value ) +void setUniformValue ( const char * name, const QMatrix2x3 & value ) +void setUniformValue ( const char * name, const QMatrix2x4 & value ) +void setUniformValue ( const char * name, const QMatrix3x2 & value ) +void setUniformValue ( const char * name, const QMatrix3x3 & value ) +void setUniformValue ( const char * name, const QMatrix3x4 & value ) +void setUniformValue ( const char * name, const QMatrix4x2 & value ) +void setUniformValue ( const char * name, const QMatrix4x3 & value ) +void setUniformValue ( const char * name, const QMatrix4x4 & value ) +//void setUniformValue ( int location, const GLfloat[2][2] value ) +//void setUniformValue ( int location, const GLfloat[3][3] value ) +//void setUniformValue ( int location, const GLfloat[4][4] value ) +//void setUniformValue ( const char * name, const GLfloat[2][2] value ) +//void setUniformValue ( const char * name, const GLfloat[3][3] value ) +//void setUniformValue ( const char * name, const GLfloat[4][4] value ) +void setUniformValue ( const char * name, const QTransform & value ) +void setUniformValue ( int location, GLint value ) +//void setUniformValue ( int location, GLuint value ) +void setUniformValue ( int location, GLfloat x, GLfloat y ) +void setUniformValue ( int location, GLfloat x, GLfloat y, GLfloat z ) +void setUniformValue ( int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) +void setUniformValue ( int location, const QVector2D & value ) +void setUniformValue ( int location, const QVector3D & value ) +void setUniformValue ( int location, const QVector4D & value ) +void setUniformValue ( int location, const QColor & color ) +void setUniformValue ( int location, const QPoint & point ) +void setUniformValue ( int location, const QPointF & point ) +void setUniformValue ( int location, const QSize & size ) +void setUniformValue ( int location, const QSizeF & size ) +void setUniformValue ( int location, const QMatrix2x2 & value ) +void setUniformValue ( int location, const QMatrix2x3 & value ) +void setUniformValue ( int location, const QMatrix2x4 & value ) +void setUniformValue ( int location, const QMatrix3x2 & value ) +void setUniformValue ( int location, const QMatrix3x3 & value ) +void setUniformValue ( int location, const QMatrix3x4 & value ) +void setUniformValue ( int location, const QMatrix4x2 & value ) +void setUniformValue ( int location, const QMatrix4x3 & value ) +void setUniformValue ( int location, const QMatrix4x4 & value ) +void setUniformValue ( int location, const QTransform & value ) +//void setUniformValue ( const char * name, GLfloat value ) +void setUniformValue ( const char * name, GLint value ) +//void setUniformValue ( const char * name, GLuint value ) +void setUniformValue ( const char * name, GLfloat x, GLfloat y ) +void setUniformValue ( const char * name, GLfloat x, GLfloat y, GLfloat z ) +void setUniformValue ( const char * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) +void setUniformValue ( const char * name, const QVector2D & value ) +void setUniformValue ( const char * name, const QVector3D & value ) +void setUniformValue ( const char * name, const QVector4D & value ) +void setUniformValue ( const char * name, const QColor & color ) +void setUniformValue ( const char * name, const QPoint & point ) +void setUniformValueArray ( int location, const GLfloat * values, int count, int tupleSize ) +void setUniformValueArray ( int location, const GLint * values, int count ) +//void setUniformValueArray ( int location, const GLuint * values, int count ) +void setUniformValueArray ( int location, const QVector2D * values, int count ) +void setUniformValueArray ( int location, const QVector3D * values, int count ) +void setUniformValueArray ( int location, const QVector4D * values, int count ) +void setUniformValueArray ( int location, const QMatrix2x2 * values, int count ) +void setUniformValueArray ( int location, const QMatrix2x3 * values, int count ) +void setUniformValueArray ( int location, const QMatrix2x4 * values, int count ) +void setUniformValueArray ( int location, const QMatrix3x2 * values, int count ) +void setUniformValueArray ( int location, const QMatrix3x3 * values, int count ) +void setUniformValueArray ( int location, const QMatrix3x4 * values, int count ) +void setUniformValueArray ( int location, const QMatrix4x2 * values, int count ) +void setUniformValueArray ( int location, const QMatrix4x3 * values, int count ) +void setUniformValueArray ( int location, const QMatrix4x4 * values, int count ) +void setUniformValueArray ( const char * name, const GLint * values, int count ) +//void setUniformValueArray ( const char * name, const GLuint * values, int count ) +void setUniformValueArray ( const char * name, const GLfloat * values, int count, int tupleSize ) +void setUniformValueArray ( const char * name, const QVector2D * values, int count ) +void setUniformValueArray ( const char * name, const QVector3D * values, int count ) +void setUniformValueArray ( const char * name, const QVector4D * values, int count ) +void setUniformValueArray ( const char * name, const QMatrix2x2 * values, int count ) +void setUniformValueArray ( const char * name, const QMatrix2x3 * values, int count ) +void setUniformValueArray ( const char * name, const QMatrix2x4 * values, int count ) +void setUniformValueArray ( const char * name, const QMatrix3x2 * values, int count ) +void setUniformValueArray ( const char * name, const QMatrix3x3 * values, int count ) +void setUniformValueArray ( const char * name, const QMatrix3x4 * values, int count ) +void setUniformValueArray ( const char * name, const QMatrix4x2 * values, int count ) +void setUniformValueArray ( const char * name, const QMatrix4x3 * values, int count ) +void setUniformValueArray ( const char * name, const QMatrix4x4 * values, int count ) +QList shaders () const +//int uniformLocation ( const char * name ) const +int uniformLocation ( const QByteArray & name ) const +int uniformLocation ( const QString & name ) const + +bool hasOpenGLShaderPrograms ( const QGLContext * context = 0 ) + + + + + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/QGLWidget.qth b/harbour/contrib/hbqt/qtopengl/qth/QGLWidget.qth new file mode 100644 index 0000000000..ba72fffb49 --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/QGLWidget.qth @@ -0,0 +1,87 @@ +/* + * $Id$ + */ + +/* + * Harbour Qt wrapper generator control file + * + * Copyright 2009-2012 Pritpal Bedi + * www - http://www.harbour-project.org + * + * See COPYING for licensing terms. + */ + + + +Inherit = QWidget +QObject = yes + + + + + +#include + + +/* + * QGLWidget ( QWidget * parent = 0, const QGLWidget * shareWidget = 0, Qt::WindowFlags f = 0 ) + * QGLWidget ( QGLContext * context, QWidget * parent = 0, const QGLWidget * shareWidget = 0, Qt::WindowFlags f = 0 ) + * QGLWidget ( const QGLFormat & format, QWidget * parent = 0, const QGLWidget * shareWidget = 0, Qt::WindowFlags f = 0 ) + * ~QGLWidget () + */ +HB_FUNC( QT_QGLWIDGET ) +{ + if( hb_pcount() == 1 && hbqt_par_isDerivedFrom( 1, "QWIDGET" ) ) + { + __HB_RETPTRGC__( new QGLWidget( hbqt_par_QWidget( 1 ) ) ); + } + else + { + __HB_RETPTRGC__( new QGLWidget() ); + } +} + + + + + + +GLuint bindTexture ( const QImage & image, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA ) +GLuint bindTexture ( const QPixmap & pixmap, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA ) +GLuint bindTexture ( const QImage & image, GLenum target, GLint format, QGLContext::BindOptions options ) +GLuint bindTexture ( const QPixmap & pixmap, GLenum target, GLint format, QGLContext::BindOptions options ) +GLuint bindTexture ( const QString & fileName ) +const QGLColormap & colormap () const +const QGLContext * context () const [*R=9*] +void deleteTexture ( GLuint id ) +void doneCurrent () +bool doubleBuffer () const +void drawTexture ( const QRectF & target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D ) +void drawTexture ( const QPointF & point, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D ) +QGLFormat format () const +QImage grabFrameBuffer ( bool withAlpha = false ) +bool isSharing () const +bool isValid () const +void makeCurrent () +void makeOverlayCurrent () +const QGLContext * overlayContext () const [*R=9*] +void qglClearColor ( const QColor & c ) const +void qglColor ( const QColor & c ) const +QPixmap renderPixmap ( int w = 0, int h = 0, bool useContext = false ) +void renderText ( int x, int y, const QString & str, const QFont & font = QFont(), int listBase = 2000 ) +void renderText ( double x, double y, double z, const QString & str, const QFont & font = QFont(), int listBase = 2000 ) +void setColormap ( const QGLColormap & cmap ) +void setMouseTracking ( bool enable ) +void swapBuffers () + +QImage convertToGLFormat ( const QImage & img ) + + + + +virtual void updateGL () +virtual void updateOverlayGL () + + + + diff --git a/harbour/contrib/hbqt/qtopengl/qth/filelist.hbm b/harbour/contrib/hbqt/qtopengl/qth/filelist.hbm new file mode 100644 index 0000000000..4c72cfd08d --- /dev/null +++ b/harbour/contrib/hbqt/qtopengl/qth/filelist.hbm @@ -0,0 +1,21 @@ +# +# $Id$ +# + +-pflag=-qtver=0x040500 +-pflag=-qtmodule=qtopengl +-pflag=-qthdocdir=../doc/ + +QGLBuffer.qth +QGLColormap.qth +QGLContext.qth +QGLFormat.qth +QGLFramebufferObject.qth +QGLFramebufferObjectFormat.qth +QGLFunctions.qth +QGLPixelBuffer.qth +QGLShader.qth +QGLShaderProgram.qth +QGLWidget.qth + +