104 строки
3.1 KiB
C#
104 строки
3.1 KiB
C#
//
|
|
// This file describes the API that the generator will produce
|
|
//
|
|
// Authors:
|
|
// Geoff Norton
|
|
// Miguel de Icaza
|
|
//
|
|
// Copyright 2009, Novell, Inc.
|
|
// Copyright 2015 Xamarin Inc.
|
|
//
|
|
using ObjCRuntime;
|
|
using Foundation;
|
|
using CoreGraphics;
|
|
using CoreLocation;
|
|
using UIKit;
|
|
using System;
|
|
|
|
namespace OpenGLES {
|
|
|
|
[Deprecated (PlatformName.iOS, 12,0, message: "Use 'Metal' instead.")]
|
|
[Deprecated (PlatformName.TvOS, 12,0, message: "Use 'Metal' instead.")]
|
|
[BaseType (typeof (NSObject))]
|
|
// <quote>It is created when an EAGLContext object is initialized and disposed of when the last EAGLContext object that references it is released.</quote>
|
|
[DisableDefaultCtor]
|
|
interface EAGLSharegroup {
|
|
|
|
[Export ("debugLabel")]
|
|
[NullAllowed]
|
|
string DebugLabel { get; set; }
|
|
}
|
|
|
|
[Deprecated (PlatformName.iOS, 12,0, message: "Use 'Metal' instead.")]
|
|
[Deprecated (PlatformName.TvOS, 12,0, message: "Use 'Metal' instead.")]
|
|
[BaseType (typeof (NSObject))]
|
|
[DisableDefaultCtor] // init now marked with NS_UNAVAILABLE
|
|
interface EAGLContext {
|
|
[Export ("initWithAPI:")]
|
|
IntPtr Constructor (EAGLRenderingAPI api);
|
|
|
|
[DesignatedInitializer]
|
|
[Export ("initWithAPI:sharegroup:")]
|
|
IntPtr Constructor (EAGLRenderingAPI api, EAGLSharegroup sharegroup);
|
|
|
|
[Static, Export("setCurrentContext:")]
|
|
bool SetCurrentContext([NullAllowed] EAGLContext context);
|
|
|
|
[Static, Export("currentContext")]
|
|
[NullAllowed]
|
|
EAGLContext CurrentContext { get; }
|
|
|
|
[Export("API")]
|
|
EAGLRenderingAPI API { get; }
|
|
|
|
[Export("sharegroup")]
|
|
EAGLSharegroup ShareGroup { get; }
|
|
|
|
[Export ("debugLabel")]
|
|
[NullAllowed]
|
|
string DebugLabel { get; set; }
|
|
|
|
//
|
|
// These are from @interface EAGLContext (EAGLContextDrawableAdditions)
|
|
//
|
|
|
|
[Export ("renderbufferStorage:fromDrawable:")]
|
|
bool RenderBufferStorage (nuint target, [NullAllowed] CoreAnimation.CAEAGLLayer drawable);
|
|
|
|
[Export ("presentRenderbuffer:")]
|
|
bool PresentRenderBuffer (nuint target);
|
|
|
|
[iOS (10,0)][TV (10,0)]
|
|
[Internal]
|
|
[Export ("presentRenderbuffer:atTime:")]
|
|
bool _PresentRenderbufferAtTime (nuint target, double presentationTime);
|
|
|
|
[iOS (10,3)][TV (10,2)]
|
|
[Internal]
|
|
[Export ("presentRenderbuffer:afterMinimumDuration:")]
|
|
bool _PresentRenderbufferAfterMinimumDuration (nuint target, double duration);
|
|
|
|
[iOS (7,1)]
|
|
[Export ("multiThreaded")]
|
|
bool IsMultiThreaded { [Bind ("isMultiThreaded")] get; set; }
|
|
|
|
// IOSurface (EAGLContext)
|
|
|
|
[iOS (11,0)]
|
|
[TV (11,0)]
|
|
[Export ("texImageIOSurface:target:internalFormat:width:height:format:type:plane:")]
|
|
bool TexImage (IOSurface.IOSurface ioSurface, nuint target, nuint internalFormat, uint width, uint height, nuint format, nuint type, uint plane);
|
|
}
|
|
|
|
[Deprecated (PlatformName.iOS, 12,0, message: "Use 'Metal' instead.")]
|
|
[Deprecated (PlatformName.TvOS, 12,0, message: "Use 'Metal' instead.")]
|
|
[Protocol]
|
|
// no [Model] because "The EAGLDrawable protocol is not intended to be implemented by objects outside of the iOS."
|
|
interface EAGLDrawable {
|
|
[Abstract]
|
|
[NullAllowed] // by default this property is null
|
|
[Export ("drawableProperties", ArgumentSemantic.Copy)]
|
|
NSDictionary DrawableProperties { get; set; }
|
|
}
|
|
}
|