2016-03-16 71 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