930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/** @file
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * VirtualBox OpenGL Cocoa Window System Helper Implementation.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Copyright (C) 2014 Oracle Corporation
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync *
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * available from http://www.virtualbox.org. This file is free software;
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * you can redistribute it and/or modify it under the terms of the GNU
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * General Public License (GPL) as published by the Free Software
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync#ifndef __DevVGA_SVGA3d_cocoa_h
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync#define __DevVGA_SVGA3d_cocoa_h
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
0b6a21892fd667342bd302336bc327e93e365bdavboxsync#include <iprt/types.h>
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync#include <VBox/VBoxCocoa.h>
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync#include <OpenGL/OpenGL.h>
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsyncRT_C_DECLS_BEGIN
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsync#ifndef ___renderspu_cocoa_helper_h
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsyncADD_COCOA_NATIVE_REF(NSView);
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsyncADD_COCOA_NATIVE_REF(NSOpenGLContext);
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsync#endif
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsync
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsync#ifdef IN_VMSVGA3D
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsync# define VMSVGA3D_DECL(type) DECLEXPORT(type)
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsync#else
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsync# define VMSVGA3D_DECL(type) DECLIMPORT(type)
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsync#endif
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsync
07557d07616212d7ba6e7ab3059e85cb14633775vboxsyncVMSVGA3D_DECL(void) vmsvga3dCocoaCreateContext(NativeNSOpenGLContextRef *ppCtx, NativeNSOpenGLContextRef pSharedCtx,
07557d07616212d7ba6e7ab3059e85cb14633775vboxsync bool fOtherProfile);
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsyncVMSVGA3D_DECL(void) vmsvga3dCocoaDestroyContext(NativeNSOpenGLContextRef pCtx);
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsyncVMSVGA3D_DECL(void) vmsvga3dCocoaCreateView(NativeNSViewRef *ppView, NativeNSViewRef pParentView);
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsyncVMSVGA3D_DECL(void) vmsvga3dCocoaDestroyView(NativeNSViewRef pView);
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsyncVMSVGA3D_DECL(void) vmsvga3dCocoaViewSetPosition(NativeNSViewRef pView, NativeNSViewRef pParentView, int x, int y);
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsyncVMSVGA3D_DECL(void) vmsvga3dCocoaViewSetSize(NativeNSViewRef pView, int w, int h);
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsyncVMSVGA3D_DECL(void) vmsvga3dCocoaViewMakeCurrentContext(NativeNSViewRef pView, NativeNSOpenGLContextRef pCtx);
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsyncVMSVGA3D_DECL(void) vmsvga3dCocoaSwapBuffers(NativeNSViewRef pView, NativeNSOpenGLContextRef pCtx);
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsyncRT_C_DECLS_END
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync#endif /* !__DevVGA_SVGA3d_cocoa_h */
ed144bee38a6c8b914d3f027f1c118a2b0482d4fvboxsync