• 6487阅读
  • 2回复

在Qt的QGLFunctions类中添加函数步骤 [复制链接]

上一主题 下一主题
离线yangkun52131
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-14

在Qt的 OpenGL库的QGLFunctions类中添加函数步骤
1.在qglfunctions.cpp中添加qglfResolveMultiTexCoord2f;
static void qglfResolveMultiTexCoord2f(GLenum texture, GLfloat s, GLfloat t)
{
    typedef void (QGLF_APIENTRYP type_glMultiTexCoord2f)(GLenum texture, GLfloat s, GLfloat t);
    const QGLContext *context = QGLContext::currentContext();
    QGLFunctionsPrivate *funcs = qt_gl_functions(context);
    funcs->MultiTexCoord2f = (type_glMultiTexCoord2f)
        context->getProcAddress(QLatin1String("glMultiTexCoord2f"));
    if (!funcs->MultiTexCoord2f) {
        funcs->MultiTexCoord2f = (type_glMultiTexCoord2f)
            context->getProcAddress(QLatin1String("glMultiTexCoord2fARB"));
    }
    if (funcs->MultiTexCoord2f)
        funcs->MultiTexCoord2f(texture, s, t);
    else
        funcs->MultiTexCoord2f = qglfResolveMultiTexCoord2f;
}
2.在QGLFunctionsPrivate函数中
QGLFunctionsPrivate::QGLFunctionsPrivate(const QGLContext *)添加
MultiTexCoord2f = qglfResolveMultiTexCoord2f;

头文件qglfunctions.h中添加
3. struct QGLFunctionsPrivate中添加
void (QGLF_APIENTRYP MultiTexCoord2f)(GLenum target, GLfloat s, GLfloat t);
4. 添加函数
inline void QGLFunctions::glMultiTexCoord2f(GLenum target, GLfloat s, GLfloat t)
{
#if defined(QT_OPENGL_ES_1) || defined(QT_OPENGL_ES_2)
    ::glMultiTexCoord2f(target, s, t);
#else
    Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
    d_ptr->MultiTexCoord2f(target, s, t);
#endif
}
5.类中添加
class Q_OPENGL_EXPORT QGLFunctions类中添加
void glMultiTexCoord2f(GLenum target, GLfloat s, GLfloat t);
离线彩阳

只看该作者 1楼 发表于: 2013-01-20
这个是改了源代码的行为吗?
上海Qt开发联盟,热忱地欢迎你的加入!
离线yangkun52131

只看该作者 2楼 发表于: 2013-01-22
引用第1楼彩阳于2013-01-20 09:45发表的  :
这个是改了源代码的行为吗?

呵呵!我要用个东西没有,所以就改了。
快速回复
限100 字节
 
上一个 下一个