2016-03-16 40 views
0

我试图将我的一个应用程序移至使用Swift。它包含一个OpenGL绘制循环(也包含一些Cocoa语句 - 是的,我意识到它可能是一个类的可怕混乱),所以我已将原始.m & .h文件复制到我的新项目中并添加了* -Header.h文件。我还添加了一个构建阶段来与OpenGL.framework链接(虽然我不确定我需要什么,但对问题没有影响)。在Swift项目中使用OpenGL

本来我从苹果公司的例子OpneGL项目大举借债,我试图编译其中一个文件中有:

#include "sourceUtil.h" 

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#import <OpenGL/OpenGL.h> 

demoSource* srcLoadSource(const char* filepathname) 
{ 
    demoSource* source = (demoSource*) calloc(sizeof(demoSource), 1); 

    // Check the file name suffix to determine what type of shader this is 
    const char* suffixBegin = filepathname + strlen(filepathname) - 4; 

    if(0 == strncmp(suffixBegin, ".fsh", 4)) 
    { 
     source->shaderType = GL_FRAGMENT_SHADER; 
    } 
    else if(0 == strncmp(suffixBegin, ".vsh", 4)) 
    { 
     source->shaderType = GL_VERTEX_SHADER; 
    } 
    else 
    { 
     // Unknown suffix 
     source->shaderType = 0; 
    } 
// more code follows 
. 
} 

然而,GL_FRAGMENT_SHADER导致的Xcode停止与错误任何构建“使用未声明的标识符'GL_FRAGMENT_SHADER'“ - 与GL_VERTEX_SHADER类似。我认为会有更多的错误,但目前这是Xcode停下来的。

+0

你可能需要'#进口' – seb

+1

@seb你可以把作为答案,我会纪念它,谢谢。 – Todd

回答

1

您需要:#import <OpenGL/gl.h>

+0

从旧的Xcode只是一个非常恼人的小变化!我以前从来不需要这一行....谢谢Seb – Todd