view dwt/internal/cocoa/NSOpenGLPixelFormat.d @ 1:8b48be5454ce

The internal cocoa classes compile now
author Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
date Tue, 19 Aug 2008 17:35:17 +0200
parents 380af2bdd8e5
children f565d3a95c0a
line wrap: on
line source

/*******************************************************************************
 * Copyright (c) 2007 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *     
 * Port to the D Programming language:
 *     Jacob Carlborg <jacob.carlborg@gmail.com>
 *******************************************************************************/
module dwt.internal.cocoa.NSOpenGLPixelFormat;

import dwt.internal.cocoa.gl;
import dwt.internal.cocoa.NSData;
import dwt.internal.cocoa.NSObject;
import dwt.internal.cocoa.OS;
import objc = dwt.internal.objc.runtime;

enum NSOpenGLPixelFormatAttribute
{
    NSOpenGLPFAAllRenderers = 1,
    NSOpenGLPFADoubleBuffer = 5,
    NSOpenGLPFAStereo = 6,
    NSOpenGLPFAAuxBuffers = 7,
    NSOpenGLPFAColorSize = 8,
    NSOpenGLPFAAlphaSize = 11,
    NSOpenGLPFADepthSize = 12,
    NSOpenGLPFAStencilSize = 13,
    NSOpenGLPFAAccumSize = 14,
    NSOpenGLPFAMinimumPolicy = 51,
    NSOpenGLPFAMaximumPolicy = 52,
    NSOpenGLPFAOffScreen = 53,
    NSOpenGLPFAFullScreen = 54,
    NSOpenGLPFASampleBuffers = 55,
    NSOpenGLPFASamples = 56,
    NSOpenGLPFAAuxDepthStencil = 57,
    NSOpenGLPFARendererID = 70,
    NSOpenGLPFASingleRenderer = 71,
    NSOpenGLPFANoRecovery = 72,
    NSOpenGLPFAAccelerated = 73,
    NSOpenGLPFAClosestPolicy = 74,
    NSOpenGLPFARobust = 75,
    NSOpenGLPFABackingStore = 76,
    NSOpenGLPFAMPSafe = 78,
    NSOpenGLPFAWindow = 80,
    NSOpenGLPFAMultiScreen = 81,
    NSOpenGLPFACompliant = 83,
    NSOpenGLPFAScreenMask = 84,
    NSOpenGLPFAPixelBuffer = 90,
    NSOpenGLPFAVirtualScreenCount = 128
}

alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAAllRenderers NSOpenGLPFAAllRenderers;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFADoubleBuffer NSOpenGLPFADoubleBuffer;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAStereo NSOpenGLPFAStereo;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAAuxBuffers NSOpenGLPFAAuxBuffers;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAColorSize NSOpenGLPFAColorSize;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAAlphaSize NSOpenGLPFAAlphaSize;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFADepthSize NSOpenGLPFADepthSize;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAStencilSize NSOpenGLPFAStencilSize;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAAccumSize NSOpenGLPFAAccumSize;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAMinimumPolicy NSOpenGLPFAMinimumPolicy;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAMaximumPolicy NSOpenGLPFAMaximumPolicy;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAOffScreen NSOpenGLPFAOffScreen;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAFullScreen NSOpenGLPFAFullScreen;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFASampleBuffers NSOpenGLPFASampleBuffers;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFASamples NSOpenGLPFASamples;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAAuxDepthStencil NSOpenGLPFAAuxDepthStencil;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFARendererID NSOpenGLPFARendererID;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFASingleRenderer NSOpenGLPFASingleRenderer;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFANoRecovery NSOpenGLPFANoRecovery;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAAccelerated NSOpenGLPFAAccelerated;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAClosestPolicy NSOpenGLPFAClosestPolicy;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFARobust NSOpenGLPFARobust;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFABackingStore NSOpenGLPFABackingStore;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAMPSafe NSOpenGLPFAMPSafe;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAWindow NSOpenGLPFAWindow;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAMultiScreen NSOpenGLPFAMultiScreen;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFACompliant NSOpenGLPFACompliant;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAScreenMask NSOpenGLPFAScreenMask;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAPixelBuffer NSOpenGLPFAPixelBuffer;
alias NSOpenGLPixelFormatAttribute.NSOpenGLPFAVirtualScreenCount NSOpenGLPFAVirtualScreenCount;

public class NSOpenGLPixelFormat : NSObject
{

    public this ()
    {
        super();
    }

    public this (objc.id id)
    {
        super(id);
    }

    public void* CGLPixelFormatObj ()
    {
        return cast(void*) OS.objc_msgSend(this.id_, OS.sel_CGLPixelFormatObj);
    }

    public NSData attributes ()
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_attributes);
        return result !is null ? new NSData(result) : null;
    }

    public void getValues (GLint* vals, NSOpenGLPixelFormatAttribute attrib, GLint screen)
    {
        OS.objc_msgSend(this.id_, OS.sel_getValues_1forAttribute_1forVirtualScreen_1, vals, attrib, screen);
    }

    public NSOpenGLPixelFormat initWithAttributes (/*const*/NSOpenGLPixelFormatAttribute* attribs)
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_initWithAttributes_1, attribs);
        return result !is null ? this : null;
    }

    public NSOpenGLPixelFormat initWithData (NSData attribs)
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_initWithData_1, attribs !is null ? attribs.id_ : null);
        return result !is null ? this : null;
    }

    public GLint numberOfVirtualScreens ()
    {
        return cast(GLint) OS.objc_msgSend(this.id_, OS.sel_numberOfVirtualScreens);
    }

    public void setAttributes (NSData attribs)
    {
        OS.objc_msgSend(this.id_, OS.sel_setAttributes_1, attribs !is null ? attribs.id_ : null);
    }

}