public PostEffectLightBloom() { var g = Engine.Graphics; var baseCode = CoreInstance.GetLightBloomShader((swig.GraphicsDeviceType)g.GraphicsDeviceType); var codeX = "#define BLUR_X 1\n" + baseCode; var codeX_Lum = "#define BLUR_X 1\n#define LUM 1\n" + baseCode; var codeY = "#define BLUR_Y 1\n" + baseCode; var codeSum = "#define SUM 1\n" + baseCode; var shaderX = g.CreateShader2D(codeX); material2dX = g.CreateMaterial2D(shaderX); var shaderX_Lum = g.CreateShader2D(codeX_Lum); material2dX_Lum = g.CreateMaterial2D(shaderX_Lum); var shaderY = g.CreateShader2D(codeY); material2dY = g.CreateMaterial2D(shaderY); var shaderSum = g.CreateShader2D(codeSum); materialSum = g.CreateMaterial2D(shaderSum); string downsampleCode = CoreInstance.GetDownsampleShader((swig.GraphicsDeviceType)g.GraphicsDeviceType); var downsampleShader = g.CreateShader2D(downsampleCode); downsample = g.CreateMaterial2D(downsampleShader); }
public PostEffectGrayScale() { var g = Engine.Graphics; var shader = g.CreateShader2D(CoreInstance.GetGrayScaleShader((swig.GraphicsDeviceType)g.GraphicsDeviceType)); material2d = g.CreateMaterial2D(shader); }
internal void Draw() { if (!IsAlive) { return; } asd.Particular.Lambda.SortByDrawingPriority(layersToDraw_); foreach (var item in layersToDraw_) { item.DrawAdditionally(); } CoreInstance.BeginDrawing(); foreach (var item in layersToDraw_) { item.BeginDrawing(); } foreach (var item in layersToDraw_) { item.Draw(); } foreach (var item in layersToDraw_) { item.EndDrawing(); } CoreInstance.EndDrawing(); }
/// <summary> /// メモリから地形のデータを読み込む。 /// </summary> /// <param name="buffer">バッファ</param> /// <remarks> /// テクスチャのパスは保存されないので、読み込んだ後にAddSurfaceする必要がある。 /// </remarks> public void LoadFromMemory(byte[] buffer) { var buf = asd.Particular.Helper.CreateVectorUint8FromArray(buffer); CoreInstance.LoadFromMemory(buf); asd.Particular.Helper.DisposeVectorUint8(buf); }
public void SetTexture2D(string name, Texture2D value) { if (value == null) { return; } CoreInstance.SetTexture2D(name, IG.GetTexture2D(value)); }
/// <summary> /// テクスチャをロックし編集可能にする。 /// </summary> /// <param name="info">テクスチャ情報</param> /// <returns>成否</returns> public bool Lock(TextureLockInfomation info) { if (info == null) { return(false); } return(CoreInstance.Lock(info.SwigObject)); }
/// <summary> /// メモリに地形のデータを保存する。 /// </summary> /// <returns>地形のデータ</returns> public byte[] SaveToMemory() { var buf = CoreInstance.SaveToMemory(); byte[] dst = new byte[buf.Count]; buf.CopyTo(dst); return(dst); }
/// <summary> /// 大量描画用モデルを生成する。 /// </summary> /// <param name="path">パス</param> /// <returns>大量描画用モデル</returns> public MassModel CreateMassModel(string path) { var model = CoreInstance.CreateMassModel_(path); if (model == null) { return(null); } return(GC.GenerateMassModel(model, GenerationType.Create)); }
/// <summary> /// エフェクトを生成する。 /// </summary> /// <param name="path">パス</param> /// <returns>エフェクト</returns> public Effect CreateEffect(string path) { var effect = CoreInstance.CreateEffect_(path); if (effect == null) { return(null); } return(GC.GenerateEffect(effect, GenerationType.Create)); }
/// <summary> /// フォントを生成する。 /// </summary> /// <param name="path">パス</param> /// <returns>フォント</returns> public Font CreateFont(string path) { var font = CoreInstance.CreateFont_(path); if (font == null) { return(null); } return(GC.GenerateFont(font, GenerationType.Create)); }
protected override void DoExecute(Instance instance, CommandResult <Exception> result) { Assert.ArgumentNotNull(instance, nameof(instance)); Assert.ArgumentNotNull(result, nameof(result)); Ensure.IsTrue(instance.State != InstanceState.Disabled, "instance is disabled"); Ensure.IsTrue(instance.State != InstanceState.Stopped, "instance is stopped"); CoreInstance.Browse(instance, "/sitecore"); }
public StreamFile CreateStreamFile(string path) { var file_ = CoreInstance.CreateStreamFile(path); if (file_ == null) { return(null); } return(GC.GenerateStreamFile(file_, GenerationType.Create)); }
/// <summary> /// 地形を生成する。 /// </summary> /// <returns>地形</returns> public Terrain3D CreateTerrain3D() { var terrain = CoreInstance.CreateTerrain3D_(); if (terrain == null) { return(null); } return(GC.GenerateTerrain3D(terrain, GenerationType.Create)); }
internal void ImmediatelyRemoveLayer(Layer layer, bool raiseEvent) { if (raiseEvent) { layer.RaiseOnRemoved(); } layersToDraw_.Remove(layer); layersToUpdate_.Remove(layer); CoreInstance.RemoveLayer(layer.CoreLayer); }
internal void ImmediatelyAddLayer(Layer layer, bool raiseEvent) { layersToDraw_.Add(layer); layersToUpdate_.Add(layer); CoreInstance.AddLayer(layer.CoreLayer); if (raiseEvent) { layer.RaiseOnAdded(); } }
/// <summary> /// 必要に応じて動的に生成されるフォントを生成する。 /// </summary> /// <param name="font">フォント名/フォントパス</param> /// <param name="fontSize">フォントサイズ</param> /// <param name="color">フォントの色</param> /// <param name="outlineSize">外枠の太さ</param> /// <param name="outlineColor">外枠の色</param> /// <returns>フォント</returns> /// <remarks> /// 文字を表示する時に必要な文字の分だけフォントを生成するフォントクラスを生成する。 /// fontには、フォント名、もしくはフォントファイルへのパスを指定する。 /// 何もfontに文字を指定しない、もしくはnullだと標準フォントが使用される。 /// 事前に専用のフォントファイルを用意する必要はないが、アプリケーションを実行する環境に指定したフォントが存在する必要がある。 /// </remarks> public Font CreateDynamicFont(string font, int fontSize, Color color, int outlineSize, Color outlineColor) { var font_ = CoreInstance.CreateDynamicFont_(font, fontSize, color, outlineSize, outlineColor); if (font_ == null) { return(null); } return(GC.GenerateFont(font_, GenerationType.Create)); }
/// <summary> /// 画像パッケージを生成する。 /// </summary> /// <param name="path">パス</param> /// <returns>画像パッケージ</returns> public ImagePackage CreateImagePackage(string path) { var ip = CoreInstance.CreateImagePackage_(path); if (ip == null) { return(null); } return(GC.GenerateImagePackage(ip, GenerationType.Create)); }
/// <summary> /// メディアプレイヤーを生成する。 /// </summary> /// <returns>メディアプレイヤー</returns> public MediaPlayer CreateMediaPlayer() { var ip = CoreInstance.CreateMediaPlayer_(); if (ip == null) { return(null); } return(GC.GenerateMediaPlayer(ip, GenerationType.Create)); }
/// <summary> /// メモリから地形のデータを読み込む。 /// </summary> /// <param name="buffer">バッファ</param> /// <remarks> /// テクスチャのパスは保存されないので、読み込んだ後にAddSurfaceする必要がある。 /// </remarks> public void LoadFromMemory(byte[] buffer) { var buf = new swig.VectorUint8(); foreach (var b in buffer) { buf.Add(b); } CoreInstance.LoadFromMemory(buf); buf.Dispose(); }
internal void RefreshAllState() { MouseButtonState mstate = (MouseButtonState)CoreInstance.GetLeftButton().GetButtonState(); leftButton.SetState(mstate); mstate = (MouseButtonState)CoreInstance.GetRightButton().GetButtonState(); rightButton.SetState(mstate); mstate = (MouseButtonState)CoreInstance.GetMiddleButton().GetButtonState(); double rot = CoreInstance.GetMiddleButton().GetRotation(); middleButton.SetState(mstate, rot); }
protected override void DoExecute(Instance instance, CommandResult <Exception> result) { Assert.ArgumentNotNull(instance, nameof(instance)); Assert.ArgumentNotNull(result, nameof(result)); Ensure.IsTrue(instance.State != InstanceState.Disabled, "instance is disabled"); Ensure.IsTrue(instance.State != InstanceState.Stopped, "instance is stopped"); var url = CoreInstanceAuth.GenerateAuthUrl(); var destFileName = CoreInstanceAuth.CreateAuthFile(instance, url); CoreInstance.Browse(instance, url); WaitAndDelete(destFileName); }
public PostEffectGaussianBlur() { var g = Engine.Graphics; var baseShader = CoreInstance.GetGaussianBlurShader((swig.GraphicsDeviceType)g.GraphicsDeviceType); var codeX = "#define BLUR_X 1\n" + baseShader; var codeY = "#define BLUR_Y 1\n" + baseShader; var shaderX = g.CreateShader2D(codeX); material2dX = g.CreateMaterial2D(shaderX); var shaderY = g.CreateShader2D(codeY); material2dY = g.CreateMaterial2D(shaderY); }
protected override void DoExecute(CommandResult <Exception> result) { Assert.ArgumentNotNull(result, "result"); var name = this.Name; Assert.ArgumentNotNullOrEmpty(name, "name"); InstanceManager.Initialize(); var instance = InstanceManager.Instances.FirstOrDefault(x => x.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); Ensure.IsNotNull(instance, "instance is not found"); Ensure.IsTrue(instance.State != InstanceState.Disabled, "instance is disabled"); Ensure.IsTrue(instance.State != InstanceState.Stopped, "instance is stopped"); CoreInstance.Browse(instance, "/sitecore"); }
/// <summary> /// 描画先として指定可能なテクスチャを生成する。 /// </summary> /// <param name="width">横幅</param> /// <param name="height">縦幅</param> /// <param name="format">フォーマット</param> /// <returns>テクスチャ</returns> public RenderTexture2D CreateRenderTexture2D(int width, int height, TextureFormat format) { var rt = CoreInstance.CreateRenderTexture2D_Imp(width, height, (swig.TextureFormat)format); var p = rt.GetPtr(); var existing = GC.Texture2Ds.GetObject(p); if (existing != null) { return((RenderTexture2D)existing); } var ret = new RenderTexture2D(rt); GC.Texture2Ds.AddObject(p, ret); return(ret); }
/// <summary> /// マテリアル(2D)を生成する。 /// </summary> /// <param name="shader">シェーダー</param> /// <returns>マテリアル(2D)</returns> public Material2D CreateMaterial2D(Shader2D shader) { var material = CoreInstance.CreateMaterial2D_(shader.CoreInstance); var p = material.GetPtr(); var existing = GC.Material2Ds.GetObject(p); if (existing != null) { return(existing); } var ret = new Material2D(material); GC.Material2Ds.AddObject(p, ret); return(ret); }
/// <summary> /// コンストラクタ /// </summary> public Scene() { CoreInstance = Engine.ObjectSystemFactory.CreateScene(); var p = CoreInstance.GetPtr(); if (GC.Scenes.Contains(p)) { Particular.Helper.ThrowException(""); } GC.Scenes.AddObject(p, this); layersToDraw_ = new List <Layer>(); layersToUpdate_ = new List <Layer>(); ComponentManager = new ComponentManager <SceneComponent>(this); IsAlive = true; }
/// <summary> /// シェーダー(2D)を生成する。 /// </summary> /// <param name="shaderText">シェーダーのコード</param> /// <returns></returns> public Shader2D CreateShader2D(string shaderText) { var shader = CoreInstance.CreateShader2D_(shaderText); if (shader == null) { return(null); } var p = shader.GetPtr(); var existing = GC.Shader2Ds.GetObject(p); if (existing != null) { return(existing); } var ret = new Shader2D(shader); GC.Shader2Ds.AddObject(p, ret); return(ret); }
/// <summary> /// 材質を設定する。 /// </summary> /// <param name="materialIndex">材質のインデックス</param> /// <param name="material">材質</param> /// <remarks>AddMaterialCountを実行した後でないと無効になる。</remarks> public void SetMaterial(int materialIndex, Material3D material) { CoreInstance.SetMaterial(materialIndex, IG.GetMaterial3D(material)); }
/// <summary> /// 編集可能なテクスチャを生成する。 /// </summary> /// <param name="path">パス</param> /// <returns>テクスチャ</returns> /// <remarks> /// 読み込める画像形式はPNGのみ。 /// </remarks> public Texture2D CreateEditableTexture2D(string path) { var texture = CoreInstance.CreateEditableTexture2D_Imp(path); return(GC.GenerateTexture2D(texture, GenerationType.Create)); }
/// <summary> /// 空のテクスチャを生成する。 /// </summary> /// <param name="width">横幅</param> /// <param name="height">縦幅</param> /// <param name="format">フォーマット</param> /// <returns>テクスチャ</returns> public Texture2D CreateEmptyTexture2D(int width, int height, TextureFormat format) { var texture = CoreInstance.CreateEmptyTexture2D_Imp(width, height, (swig.TextureFormat)format); return(GC.GenerateTexture2D(texture, GenerationType.Create)); }