我提供了使用float或double类型编译程序的选项,但是有一个问题:我需要手动设置GL_FLOAT或GL_DOUBLE,因为我不知道如何执行以下操作:

typedef float MYTYPE;

#if MYTYPE == float
    #define GL_MYTYPE GL_FLOAT // used for vertex array parameters.
#else
    #define GL_MYTYPE GL_DOUBLE
#endif

注意:我没有C++ 11或任何东西,只有好的旧C++。

最佳答案

您可以这样进行:

#define MYFLOAT

#ifdef MYFLOAT
    typedef float MYTYPE;
     #define GL_MYTYPE GL_FLOAT // used for vertex array parameters.
#else
    typedef double MYTYPE;
    #define GL_MYTYPE GL_DOUBLE
#endif

如果要使用MYFLOAT,则需要定义float,或者省略它以使用double

PS:保持索引不在编译时评估,而是在预处理时评估。

07-28 01:25
查看更多