2012-01-16 31 views
5

Tôi cố gắng để thiết lập một OpenGL 3.0+ bối cảnh trong XCode 4.Thiết lập và sử dụng OpenGL 3.0+ với Mac OSX Lion (10.7)

Như bạn thấy talking about shaders here tại trang web nhà phát triển ví dụ nó sử dụng là OpenGL 2.0. Trong Phụ lục B, nó nói về cập nhật cho 3.2 nhưng chỉ cho bạn thấy những thay đổi tên chức năng và những gì chỉ áp dụng cho lõi, nhưng không có ví dụ thực sự thiết lập một bối cảnh OpenGL. Điều này đã thay đổi rất nhiều kể từ khi các đường ống chức năng cố định được rằng bạn không còn có thể làm những việc như glMatrixMode (...) .. vv vv ... tức là. trạng thái opengl không còn nữa.

Nếu bất cứ ai có thể chỉ cho tôi liên kết ở đâu đó trên web thiết lập ngữ cảnh OpenGL 3.0+ trên Mac OSX 10.7 bằng XCode 4, nó sẽ được đánh giá cao.

+0

Điều gì về chương trình * 'Chọn trình kết xuất đồ họa và bộ đệm' * trong cùng một tài liệu? Bạn chọn một thuộc tính tiểu sử: ** kCGLOGLPVersion_3_2_Core ** –

Trả lời

5

Có một số mã ví dụ here để thiết lập ngữ cảnh 3.2 bên trong NSOpenGLView.

Hoặc sử dụng Core GL,

CGLPixelFormatAttribute attribs[13] = { 
    kCGLPFAOpenGLProfile, (CGLPixelFormatAttribute)kCGLOGLPVersion_3_2_Core, // This sets the context to 3.2 
    kCGLPFAColorSize,  (CGLPixelFormatAttribute)24, 
    kCGLPFAAlphaSize,  (CGLPixelFormatAttribute)8, 
    kCGLPFAAccelerated, 
    kCGLPFADoubleBuffer, 
    kCGLPFASampleBuffers, (CGLPixelFormatAttribute)1, 
    kCGLPFASamples,  (CGLPixelFormatAttribute)4, 
    (CGLPixelFormatAttribute)0 
}; 

CGLPixelFormatObj pix; 
GLint npix; 
CGLChoosePixelFormat(attribs, &pix, &npix); 

CGLContextObj ctx; 
CGLCreateContext(pix, 0, &ctx); 

CGLSetCurrentContext(ctx); 
CGLLockContext(ctx); 

Trong cả hai trường hợp bạn phải làm điều đó bằng tay (không thông qua InterfaceBuilder) bởi vì nó là opt-in.

+0

cảm ơn tôi sẽ kiểm tra xem nó ... – cspam

Các vấn đề liên quan