From c8dd028d5c0a1f11b4970d72f906f5dcb62f2c51 Mon Sep 17 00:00:00 2001 From: Egor Bogatov Date: Tue, 27 Feb 2018 15:18:24 +0300 Subject: [PATCH] fix #300 - missing GetRenderBuffer/GetTarget --- Bindings/Portable/Generated/RenderSurface.cs | 54 ++++++++++++++++++++ Bindings/Portable/Generated/binding.cpp | 21 ++++++++ SharpieBinder/CxxBinder.cs | 6 +-- 3 files changed, 78 insertions(+), 3 deletions(-) diff --git a/Bindings/Portable/Generated/RenderSurface.cs b/Bindings/Portable/Generated/RenderSurface.cs index 5077fd46..9c34bb08 100644 --- a/Bindings/Portable/Generated/RenderSurface.cs +++ b/Bindings/Portable/Generated/RenderSurface.cs @@ -133,6 +133,18 @@ namespace Urho RenderSurface_Release (handle); } + [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)] + internal static extern bool RenderSurface_CreateRenderBuffer (IntPtr handle, uint width, uint height, uint format, int multiSample); + + /// + /// Create renderbuffer that cannot be sampled as a texture. Only used on OpenGL. + /// + public bool CreateRenderBuffer (uint width, uint height, uint format, int multiSample) + { + Runtime.ValidateRefCounted (this); + return RenderSurface_CreateRenderBuffer (handle, width, height, format, multiSample); + } + [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)] internal static extern int RenderSurface_GetWidth (IntPtr handle); @@ -325,6 +337,30 @@ namespace Urho return RenderSurface_GetReadOnlyView (handle); } + [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)] + internal static extern uint RenderSurface_GetTarget (IntPtr handle); + + /// + /// Return surface's OpenGL target. + /// + private uint GetTarget () + { + Runtime.ValidateRefCounted (this); + return RenderSurface_GetTarget (handle); + } + + [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)] + internal static extern uint RenderSurface_GetRenderBuffer (IntPtr handle); + + /// + /// Return OpenGL renderbuffer if created. + /// + private uint GetRenderBuffer () + { + Runtime.ValidateRefCounted (this); + return RenderSurface_GetRenderBuffer (handle); + } + [DllImport (Consts.NativeImport, CallingConvention = CallingConvention.Cdecl)] internal static extern bool RenderSurface_IsResolveDirty (IntPtr handle); @@ -495,6 +531,24 @@ namespace Urho } } + /// + /// Return surface's OpenGL target. + /// + public uint Target { + get { + return GetTarget (); + } + } + + /// + /// Return OpenGL renderbuffer if created. + /// + public uint RenderBuffer { + get { + return GetRenderBuffer (); + } + } + /// /// Return whether multisampled rendertarget needs resolve. /// Or diff --git a/Bindings/Portable/Generated/binding.cpp b/Bindings/Portable/Generated/binding.cpp index 23e2f71f..6694ea44 100644 --- a/Bindings/Portable/Generated/binding.cpp +++ b/Bindings/Portable/Generated/binding.cpp @@ -13582,6 +13582,13 @@ RenderSurface_Release (Urho3D::RenderSurface *_target) } +DllExport int +RenderSurface_CreateRenderBuffer (Urho3D::RenderSurface *_target, unsigned int width, unsigned int height, unsigned int format, int multiSample) +{ + return _target->CreateRenderBuffer (width, height, format, multiSample); +} + + DllExport int RenderSurface_GetWidth (Urho3D::RenderSurface *_target) { @@ -13694,6 +13701,20 @@ RenderSurface_GetReadOnlyView (Urho3D::RenderSurface *_target) } +DllExport unsigned int +RenderSurface_GetTarget (Urho3D::RenderSurface *_target) +{ + return _target->GetTarget (); +} + + +DllExport unsigned int +RenderSurface_GetRenderBuffer (Urho3D::RenderSurface *_target) +{ + return _target->GetRenderBuffer (); +} + + DllExport int RenderSurface_IsResolveDirty (Urho3D::RenderSurface *_target) { diff --git a/SharpieBinder/CxxBinder.cs b/SharpieBinder/CxxBinder.cs index 9fbfa037..3eb62202 100644 --- a/SharpieBinder/CxxBinder.cs +++ b/SharpieBinder/CxxBinder.cs @@ -811,7 +811,7 @@ namespace SharpieBinder { "ConstantBuffer", new[] { "OnDeviceReset" } }, { "Graphics", new[] { "CleanupRenderSurface","CleanupShaderPrograms","GetAnisotropySupport","GetDepthTexture","GetForceGL2","GetGL3Support","GetGL3Support","GetOrCreateConstantBuffer","GetShaderProgram","MarkFBODirty","MarkFBODirty","Release","Restore","SetForceGL2","SetTextureForUpdate","SetUBO","SetVBO" } }, { "IndexBuffer", new[] { "OnDeviceReset" } }, - { "RenderSurface", new[] { "CreateRenderBuffer","GetRenderBuffer","GetTarget","OnDeviceLost","SetTarget" } }, + { "RenderSurface", new[] { "OnDeviceLost" } }, { "ShaderProgram", new[] { "GetUsedVertexAttributes", "ClearGlobalParameterSource","ClearGlobalParameterSource","ClearParameterSource","ClearParameterSources","ClearParameterSources","GetLinkerOutput","GetParameter","GetPixelShader","GetVertexShader","HasParameter","HasTextureUnit","Link","NeedParameterUpdate","OnDeviceLost","Release" } }, { "ShaderVariation", new[] { "OnDeviceLost" } }, { "Texture", new[] { "GetDataType","GetDataType","GetExternalFormat","GetExternalFormat","GetTarget" } }, @@ -983,7 +983,7 @@ namespace SharpieBinder if (IsUnsupportedType(p.QualType, returnType: false) && !isVariantArgument) { - //Console.WriteLine($"Bailing out on {p.QualType} from {decl.QualifiedName}"); + Console.WriteLine($"Bailing out on {p.QualType} from {decl.QualifiedName}"); return false; } } @@ -992,7 +992,7 @@ namespace SharpieBinder return false; //it won't be easy to handle if it has more than one Variant argument if (IsUnsupportedType(decl.ReturnQualType, returnType: true)) {//variant return type is not support yet - //Console.WriteLine($"RETURN Bailing out on {decl.ReturnQualType} from {decl.QualifiedName}"); + Console.WriteLine($"RETURN Bailing out on {decl.ReturnQualType} from {decl.QualifiedName}"); return false; } return true;