コード例 #1
0
 public void Set(Texture2DI resource)
 {
     var texture = (Texture2D)resource;
     video.currentPixelTextures[index] = texture;
     this.texture = new WeakReference(texture);
     Apply = setTexture2D;
 }
コード例 #2
0
ファイル: ShaderResource.cs プロジェクト: damian-666/ReignSDK
        public void Set(Texture2DI resource)
        {
            var texture = (Texture2D)resource;

            video.currentPixelTextures[index] = texture;
            this.texture = new WeakReference(texture);
            Apply        = setTexture2D;
        }
コード例 #3
0
 public void Set(Texture2DI resource)
 {
     var texture = (Texture2D)resource;
     #if SILVERLIGHT
     video.Device.Textures[resourceIndex] = texture.texture;
     #else
     parameter.SetValue(texture.texture);
     #endif
 }
コード例 #4
0
        public void Set(Texture2DI resource)
        {
            var texture = (Texture2D)resource;

                        #if SILVERLIGHT
            video.Device.Textures[resourceIndex] = texture.texture;
                        #else
            parameter.SetValue(texture.texture);
                        #endif
        }
コード例 #5
0
ファイル: Font.cs プロジェクト: reignstudios/ReignSDK
 public Font(DisposableI parent, ShaderI shader, Texture2DI texture, string metricsFileName, Loader.LoadedCallbackMethod loadedCallback)
     : base(parent)
 {
     new StreamLoader(metricsFileName,
     delegate(object sender, bool succeeded)
     {
         if (succeeded)
         {
             init(shader, texture, ((StreamLoader)sender).LoadedStream, metricsFileName, loadedCallback);
         }
         else
         {
             FailedToLoad = true;
             Dispose();
             if (loadedCallback != null) loadedCallback(this, false);
         }
     });
 }
コード例 #6
0
ファイル: Font.cs プロジェクト: damian-666/ReignSDK
 public Font(DisposableI parent, ShaderI shader, Texture2DI texture, string metricsFileName, Loader.LoadedCallbackMethod loadedCallback)
     : base(parent)
 {
     new StreamLoader(metricsFileName,
                      delegate(object sender, bool succeeded)
     {
         if (succeeded)
         {
             init(shader, texture, ((StreamLoader)sender).LoadedStream, metricsFileName, loadedCallback);
         }
         else
         {
             FailedToLoad = true;
             Dispose();
             if (loadedCallback != null)
             {
                 loadedCallback(this, false);
             }
         }
     });
 }
コード例 #7
0
ファイル: Font.cs プロジェクト: damian-666/ReignSDK
        private void init(ShaderI shader, Texture2DI texture, Stream stream, string metricsFileName, Loader.LoadedCallbackMethod loadedCallback)
        {
            try
            {
                // load characters
                var metrics = new FontMetrics();
                metrics.Load(stream);

                Characters = new Character[metrics.Characters.Length];
                for (int i = 0; i != metrics.Characters.Length; ++i)
                {
                    var character = metrics.Characters[i];
                    Characters[i] = new Character(character.Key, new Vector2(character.X, character.Y), new Vector2(character.Width, character.Height));
                }

                // get shader variables
                this.texture     = texture;
                this.shader      = shader;
                shaderCamera     = shader.Variable("Camera");
                shaderPosition   = shader.Variable("Position");
                shaderSize       = shader.Variable("Size");
                shaderPositionUV = shader.Variable("PositionUV");
                shaderSizeUV     = shader.Variable("SizeUV");
                texelOffset      = shader.Variable("TexelOffset");
                shaderColor      = shader.Variable("Color");
                shaderTexture    = shader.Resource("DiffuseTexture");

                // create buffers
                var layoutDesc = BufferLayoutDescAPI.New(BufferLayoutTypes.Position2);
                layout = BufferLayoutAPI.New(this, shader, layoutDesc);

                var Indices = new int[6]
                {
                    0, 1, 2,
                    0, 2, 3
                };

                var Vertices = new float[8]
                {
                    0, 0,
                    0, 1,
                    1, 1,
                    1, 0,
                };

                indexBuffer  = IndexBufferAPI.New(this, BufferUsages.Default, Indices);
                vertexBuffer = VertexBufferAPI.New(this, layoutDesc, BufferUsages.Default, VertexBufferTopologys.Triangle, Vertices);
            }
            catch (Exception e)
            {
                FailedToLoad = true;
                Loader.AddLoadableException(e);
                Dispose();
                if (loadedCallback != null)
                {
                    loadedCallback(this, false);
                }
            }

            Loaded = true;
            if (loadedCallback != null)
            {
                loadedCallback(this, true);
            }
        }
コード例 #8
0
ファイル: Texture2D.cs プロジェクト: reignstudios/ReignSDK
 public void Copy(Texture2DI texture)
 {
     throw new NotImplementedException();
 }
コード例 #9
0
ファイル: Font.cs プロジェクト: reignstudios/ReignSDK
        private void init(ShaderI shader, Texture2DI texture, Stream stream, string metricsFileName, Loader.LoadedCallbackMethod loadedCallback)
        {
            try
            {
                // load characters
                var metrics = new FontMetrics();
                metrics.Load(stream);

                Characters = new Character[metrics.Characters.Length];
                for (int i = 0; i != metrics.Characters.Length; ++i)
                {
                    var character = metrics.Characters[i];
                    Characters[i] = new Character(character.Key, new Vector2(character.X, character.Y), new Vector2(character.Width, character.Height));
                }

                // get shader variables
                this.texture = texture;
                this.shader = shader;
                shaderCamera = shader.Variable("Camera");
                shaderPosition = shader.Variable("Position");
                shaderSize = shader.Variable("Size");
                shaderPositionUV = shader.Variable("PositionUV");
                shaderSizeUV = shader.Variable("SizeUV");
                texelOffset = shader.Variable("TexelOffset");
                shaderColor = shader.Variable("Color");
                shaderTexture = shader.Resource("DiffuseTexture");

                // create buffers
                var layoutDesc = BufferLayoutDescAPI.New(BufferLayoutTypes.Position2);
                layout = BufferLayoutAPI.New(this, shader, layoutDesc);

                var Indices = new int[6]
                {
                    0, 1, 2,
                    0, 2, 3
                };

                var Vertices = new float[8]
                {
                    0, 0,
                    0, 1,
                    1, 1,
                    1, 0,
                };

                indexBuffer = IndexBufferAPI.New(this, BufferUsages.Default, Indices);
                vertexBuffer = VertexBufferAPI.New(this, layoutDesc, BufferUsages.Default, VertexBufferTopologys.Triangle, Vertices);
            }
            catch (Exception e)
            {
                FailedToLoad = true;
                Loader.AddLoadableException(e);
                Dispose();
                if (loadedCallback != null) loadedCallback(this, false);
            }

            Loaded = true;
            if (loadedCallback != null) loadedCallback(this, true);
        }
コード例 #10
0
 public void Copy(Texture2DI texture)
 {
     throw new NotImplementedException();
 }
コード例 #11
0
        public override void Shown()
        {
            try
            {
                root = new RootDisposable();
                VideoTypes videoType;
                #if WIN32
                video = Video.Init(VideoTypes.D3D11 | VideoTypes.D3D9 | VideoTypes.OpenGL, out videoType, root, this, true);
                #elif METRO
                video = Video.Create(VideoTypes.D3D11, out videoType, root, this, true);
                #elif XNA
                video = Video.Create(VideoTypes.XNA, out videoType, root, this);
                #endif

                FontMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);

                fontTexture = Texture2DAPI.New(video, "Data/Font.png", null);
                font = new Font(video, FontMaterial.Shader, fontTexture, "Data/Font.font", null);

                var frame = FrameSize;
                viewPort = ViewPortAPI.New(video, 0, 0, frame.Width, frame.Height);
                camera = new Camera(viewPort, new Vector3(5, 5, 5), new Vector3(), new Vector3(5, 5+1, 5), 1, 50, MathUtilities.DegToRad(45));

                rasterizerState = RasterizerStateAPI.New(video, RasterizerStateDescAPI.New(RasterizerStateTypes.Solid_CullNone));
                depthStencilState = DepthStencilStateAPI.New(video, DepthStencilStateDescAPI.New(DepthStencilStateTypes.ReadWrite_Less));
                samplerState = SamplerStateAPI.New(video, SamplerStateDescAPI.New(SamplerStateTypes.Linear_Wrap));
                blendState = BlendStateAPI.New(video, BlendStateDescAPI.New(BlendStateTypes.Alpha));

                loaded = true;
            }
            catch (Exception e)
            {
                dispose();
                Message.Show("Error", e.Message);
            }
        }