Todd
Todd

Reputation: 1953

Use OpenGL in Swift project

I'm trying to move one of my apps over to using Swift. It contains an OpenGL draw loop (that also contains some Cocoa statements - yes, I realise it's probably a horrible mess of a class) so I've copied the original .m & .h files into my new project and added a *-Bridging-Header.h file. I've also added a build phase to link with the OpenGL.framework (although I'm not sure I needed to and it made no difference to the issue).

Originally I borrowed heavily from Apple's example OpneGL project and within one of the files I'm trying to compile there is:

#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  
.  
}  

However, GL_FRAGMENT_SHADER is causing Xcode to stop any build with the error "Use of undeclared identifier 'GL_FRAGMENT_SHADER'" - similarly with the GL_VERTEX_SHADER. I presume there'll be more errors but currently this is what Xcode stops at.

Upvotes: 1

Views: 753

Answers (1)

seb
seb

Reputation: 2385

You need: #import <OpenGL/gl.h>

Upvotes: 1

Related Questions