axmol/external/winrt-specific/angle/include/winrtangle.h

50 lines
1.8 KiB
C
Raw Normal View History

2014-03-29 02:39:47 +08:00
//
// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// winrtangle.h: Defines the interface for the EGLNativeWindowType
#ifndef WINRT_ANGLE_H_
#define WINRT_ANGLE_H_
#include <unknwn.h>
#include <wrl.h>
#include <d3d11_1.h>
typedef enum {
ANGLE_D3D_FEATURE_LEVEL_ANY = 0,
ANGLE_D3D_FEATURE_LEVEL_9_1,
ANGLE_D3D_FEATURE_LEVEL_9_2,
ANGLE_D3D_FEATURE_LEVEL_9_3,
ANGLE_D3D_FEATURE_LEVEL_10_0,
ANGLE_D3D_FEATURE_LEVEL_10_1,
ANGLE_D3D_FEATURE_LEVEL_11_0
} ANGLE_D3D_FEATURE_LEVEL;
struct __declspec(uuid("736E7573-FD24-433F-811E-893B36B7A078")) IWinrtEglWindow : IUnknown
{
virtual ANGLE_D3D_FEATURE_LEVEL __stdcall GetAngleD3DFeatureLevel() const = 0;
virtual D3D_FEATURE_LEVEL __stdcall getD3DFeatureLevel() const = 0;
virtual IUnknown* __stdcall GetWindowInterface() const = 0;
virtual ID3D11Device* __stdcall GetAngleD3DDevice() const = 0;
virtual void __stdcall SetAngleD3DDevice(ID3D11Device* device) = 0;
};
struct __declspec(uuid("6B70903A-0D55-45BA-A10E-CA2D428E4867")) IWinPhone8XamlD3DWindow : IUnknown
{
virtual ID3D11Device1* __stdcall GetDevice() const = 0;
virtual ID3D11DeviceContext1* __stdcall GetContext() const = 0;
virtual ID3D11RenderTargetView* __stdcall GetRenderTarget() const = 0;
virtual HRESULT getBackBuffer(ID3D11Texture2D** buffer) const = 0;
virtual void __stdcall Update(ID3D11Device1* device, ID3D11DeviceContext1* context, ID3D11RenderTargetView* renderTarget) = 0;
};
HRESULT __stdcall CreateWinrtEglWindow(IUnknown* windowInterface, ANGLE_D3D_FEATURE_LEVEL featureLevel, IWinrtEglWindow ** result);
HRESULT __stdcall CreateWinPhone8XamlWindow(IWinPhone8XamlD3DWindow ** result);
#endif // WINRT_ANGLE_H_