コード例 #1
0
        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);
        }
コード例 #2
0
        public PostEffectGrayScale()
        {
            var g      = Engine.Graphics;
            var shader = g.CreateShader2D(CoreInstance.GetGrayScaleShader((swig.GraphicsDeviceType)g.GraphicsDeviceType));

            material2d = g.CreateMaterial2D(shader);
        }
コード例 #3
0
ファイル: Scene.cs プロジェクト: wraikny/Altseed
        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();
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
 public void SetTexture2D(string name, Texture2D value)
 {
     if (value == null)
     {
         return;
     }
     CoreInstance.SetTexture2D(name, IG.GetTexture2D(value));
 }
コード例 #6
0
        /// <summary>
        /// テクスチャをロックし編集可能にする。
        /// </summary>
        /// <param name="info">テクスチャ情報</param>
        /// <returns>成否</returns>
        public bool Lock(TextureLockInfomation info)
        {
            if (info == null)
            {
                return(false);
            }

            return(CoreInstance.Lock(info.SwigObject));
        }
コード例 #7
0
ファイル: Terrain3D.cs プロジェクト: neofuji/Altseed
        /// <summary>
        /// メモリに地形のデータを保存する。
        /// </summary>
        /// <returns>地形のデータ</returns>
        public byte[] SaveToMemory()
        {
            var buf = CoreInstance.SaveToMemory();

            byte[] dst = new byte[buf.Count];
            buf.CopyTo(dst);

            return(dst);
        }
コード例 #8
0
        /// <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));
        }
コード例 #9
0
        /// <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));
        }
コード例 #10
0
        /// <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));
        }
コード例 #11
0
        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");
        }
コード例 #12
0
ファイル: File.cs プロジェクト: wraikny/Altseed
        public StreamFile CreateStreamFile(string path)
        {
            var file_ = CoreInstance.CreateStreamFile(path);

            if (file_ == null)
            {
                return(null);
            }
            return(GC.GenerateStreamFile(file_, GenerationType.Create));
        }
コード例 #13
0
        /// <summary>
        /// 地形を生成する。
        /// </summary>
        /// <returns>地形</returns>
        public Terrain3D CreateTerrain3D()
        {
            var terrain = CoreInstance.CreateTerrain3D_();

            if (terrain == null)
            {
                return(null);
            }
            return(GC.GenerateTerrain3D(terrain, GenerationType.Create));
        }
コード例 #14
0
ファイル: Scene.cs プロジェクト: wraikny/Altseed
 internal void ImmediatelyRemoveLayer(Layer layer, bool raiseEvent)
 {
     if (raiseEvent)
     {
         layer.RaiseOnRemoved();
     }
     layersToDraw_.Remove(layer);
     layersToUpdate_.Remove(layer);
     CoreInstance.RemoveLayer(layer.CoreLayer);
 }
コード例 #15
0
ファイル: Scene.cs プロジェクト: wraikny/Altseed
 internal void ImmediatelyAddLayer(Layer layer, bool raiseEvent)
 {
     layersToDraw_.Add(layer);
     layersToUpdate_.Add(layer);
     CoreInstance.AddLayer(layer.CoreLayer);
     if (raiseEvent)
     {
         layer.RaiseOnAdded();
     }
 }
コード例 #16
0
        /// <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));
        }
コード例 #17
0
        /// <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));
        }
コード例 #18
0
ファイル: Graphics.cs プロジェクト: wraikny/Altseed
        /// <summary>
        /// メディアプレイヤーを生成する。
        /// </summary>
        /// <returns>メディアプレイヤー</returns>
        public MediaPlayer CreateMediaPlayer()
        {
            var ip = CoreInstance.CreateMediaPlayer_();

            if (ip == null)
            {
                return(null);
            }
            return(GC.GenerateMediaPlayer(ip, GenerationType.Create));
        }
コード例 #19
0
ファイル: Terrain3D.cs プロジェクト: neofuji/Altseed
        /// <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();
        }
コード例 #20
0
ファイル: Mouse.cs プロジェクト: neofuji/Altseed
        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);
        }
コード例 #21
0
        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);
        }
コード例 #22
0
        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);
        }
コード例 #23
0
        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");
        }
コード例 #24
0
        /// <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);
        }
コード例 #25
0
        /// <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);
        }
コード例 #26
0
ファイル: Scene.cs プロジェクト: wraikny/Altseed
        /// <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;
        }
コード例 #27
0
        /// <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);
        }
コード例 #28
0
 /// <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));
 }
コード例 #29
0
        /// <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));
        }
コード例 #30
0
        /// <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));
        }