Exemplo n.º 1
0
        public void Evaluate(int SpreadMax)
        {
            this.spreadMax = SpreadMax;

            if (this.rebuildCache[0] || this.textCache == null)
            {
                this.textObjects.Sync();
                this.textFormat.Sync();

                if (this.textCache != null)
                {
                    this.textCache.Dispose();
                    this.textCache = null;
                }

                var defaultTextFormat = this.textFormat[0];

                this.cacheList.Clear();
                for (int i = 0; i < this.textObjects.SliceCount; i++)
                {
                    TextObject to      = this.textObjects[i];
                    var        tFormat = to.TextFormat != null ? to.TextFormat : defaultTextFormat;

                    TextLayout tl = new TextLayout(this.dwFactory, to.Text, tFormat);

                    SlimDX.Color4 c = to.Color;

                    DX11CachedText ct = new DX11CachedText(tl, to.Matrix, c);
                    cacheList.Add(ct);
                }

                this.textCache = new DX11TextObjectCache(cacheList);
            }
        }
Exemplo n.º 2
0
        public static void Convert(string source, string dest)
        {
            FileStream fs = File.Open(source, FileMode.Open, FileAccess.Read);

            DX.Mesh mesh = DX.Mesh.FromStream(device, fs, DX.MeshFlags.Managed);

            DX.ExtendedMaterial[] mats    = mesh.GetMaterials();
            Material[][]          outMats = new Material[mats.Length][];
            for (int i = 0; i < mats.Length; i++)
            {
                outMats[i]    = new Material[1];
                outMats[i][0] = new Material(null);

                DX.Material mat = mats[i].MaterialD3D;

                SlimDX.Color4 clr = mat.Ambient;

                outMats[i][0].Ambient = new Color4F(clr.Alpha, clr.Red, clr.Green, clr.Blue);

                clr = mat.Diffuse;
                outMats[i][0].Diffuse = new Color4F(clr.Alpha, clr.Red, clr.Green, clr.Blue);

                clr = mat.Specular;
                outMats[i][0].Specular = new Color4F(clr.Alpha, clr.Red, clr.Green, clr.Blue);

                outMats[i][0].SetTextureFile(0, mats[i].TextureFileName);
            }


            string name = Path.GetFileNameWithoutExtension(source);



            //EditableMesh outMesh = new EditableMesh(name, mesh, outMats);


            MeshData data = new MeshData((RenderSystem)null);


            data.Name      = name;
            data.Materials = outMats;

            BuildFromMesh(mesh, data, outMats);


            EditableModel outMdl = new EditableModel();

            //mesh.Dispose();

            outMdl.Entities = new MeshData[] { data };

            //TransformAnimation transAnim = new TransformAnimation(1);
            //transAnim.Nodes[0].Transforms = new Matrix[1] { Matrix.Identity };

            //outMdl.SetTransformAnimInst(new TransformAnimationInstance(transAnim));
            EditableModel.ToFile(outMdl, dest);
        }
Exemplo n.º 3
0
        public Color4(float a, float r, float g, float b)
        {
            InternalColor4 = new SlimDX.Color4();

            Alpha = a;
            Red = r;
            Green = g;
            Blue = b;
        }
Exemplo n.º 4
0
        // This brightens or darkens a color
        private Color AdjustedColor(Color c, float amount)
        {
            SlimDX.Color4 cc = new SlimDX.Color4(c);

            // Adjust color
            cc.Red   = Saturate((cc.Red * (1f + amount)) + (amount * 0.5f));
            cc.Green = Saturate((cc.Green * (1f + amount)) + (amount * 0.5f));
            cc.Blue  = Saturate((cc.Blue * (1f + amount)) + (amount * 0.5f));

            // Return result
            return(Color.FromArgb(cc.ToArgb()));
        }
Exemplo n.º 5
0
        private void Render(DX11RenderContext context, DX11RenderSettings settings)
        {
            if (this.spreadMax == 0)
            {
                return;
            }

            if (this.FInEnabled[0])
            {
                float w = (float)settings.RenderWidth;
                float h = (float)settings.RenderHeight;
                SharpDX.Direct3D11.DeviceContext shaprdxContext = new SharpDX.Direct3D11.DeviceContext(context.CurrentDeviceContext.ComPointer);

                FontWrapper fw = this.FTextRenderer.IsConnected ? this.FTextRenderer[0][context].FontWrapper : FontWrapperFactory.GetWrapper(context, this.dwFactory);

                var sView = settings.View;
                var sProj = settings.Projection;

                SharpDX.Matrix view       = *(SharpDX.Matrix *) & sView;
                SharpDX.Matrix projection = *(SharpDX.Matrix *) & sProj;


                var objectsettings = this.objectSettings[context];
                objectsettings.IterationCount = 1;
                objectsettings.Geometry       = null;

                for (int i = 0; i < this.textCache.objects.Length; i++)
                {
                    SharpDX.Matrix mat = SharpDX.Matrix.Scaling(1.0f, -1.0f, 1.0f);
                    mat = SharpDX.Matrix.Multiply(mat, view);
                    mat = SharpDX.Matrix.Multiply(mat, projection);

                    objectsettings.DrawCallIndex  = i;
                    objectsettings.WorldTransform = *(SlimDX.Matrix *) & mat;

                    if (settings.ValidateObject(objectsettings))
                    {
                        SlimDX.Color4 color = this.textCache.objects[i].Color;
                        color.Alpha *= SharpDX.MathUtil.Clamp(settings.LayerOpacity, 0.0f, 1.0f);
                        SharpDX.Color4 sdxColor = *(SharpDX.Color4 *) & color;

                        fw.DrawTextLayout(shaprdxContext, new SharpDX.DirectWrite.TextLayout(this.textCache.objects[i].TextLayout.ComPointer), SharpDX.Vector2.Zero,
                                          mat, sdxColor, TextFlags.None);
                    }
                }

                //Apply old states back
                context.RenderStateStack.Apply();
                context.CleanShaderStages();
            }
        }
Exemplo n.º 6
0
        public void DrawBox(ref Vector3 bbMin, ref Vector3 bbMax, ref Matrix trans, Color color)
        {
            Vector3 scaling = bbMax - bbMin;
            Vector3 center  = (bbMax + bbMin) * 0.5f;

            var c = new SlimDX.Color4(color.ToArgb());

            Matrix m = Matrix.Scaling(scaling) * Matrix.Translation(center) * trans;

            this.solidColorShader.ApplyWorld(*(SlimDX.Matrix *) & m);
            this.solidColorShader.ApplyColor(c);

            this.solidColorShader.ApplyPass();
            this.box.Bind(this.boxSphereColorLayout);
            this.box.Draw();
        }
Exemplo n.º 7
0
        public IObjectWithID DecodeColor(Cell cell, SlimDX.Color4 color)
        {
            int colorValue = ((int)(color.Red * 255) << 16) |
                             ((int)(color.Green * 255) << 8) |
                             (int)(color.Blue * 255);

            int             major = (colorValue >> _bitsPerMinorID) & ~(~0 << _bitsPerMajorID);
            ObjectRetriever retriever;

            if (!_majorIdToRetriever.TryGetValue(major, out retriever))
            {
                return(null);
            }

            int minor = colorValue & ~(~0 << _bitsPerMinorID);

            return(retriever(cell, minor));
        }
Exemplo n.º 8
0
        /// <summary>
        /// In a derived class, implements logic that should occur before all
        /// other rendering.
        /// </summary>
        protected virtual void OnRenderBegin(bool isScreenshot)
        {
            this.globalSettings.ShaderManager.Begin();
            this.globalSettings.TextureManager.Begin();

            if (EnableCamera)
            {
                SlimDX.Vector3 forward = cameraPosition + cameraForward;
                this.globalSettings.SetViewMatrix(cameraPosition, forward, cameraUp);
            }

            this.globalSettings.SetWorldMatrix(arcBall.GetRotationMatrix(), zoom, sceneOffset);

            SlimDX.Color4 clearColor = (isScreenshot) ? new SlimDX.Color4(0, 0, 0, 0) : new SlimDX.Color4(0.3f, 0.3f, 0.3f);
            Context.Device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, clearColor, 1.0f, 0);
            Context.Device.BeginScene();

            this.renderList.ForEach(x => x.BeginRender());
        }
Exemplo n.º 9
0
        /// <summary>
        /// 16進のカラーコード文字列(#xxxxxx)を透過無しColor4に変換する
        /// </summary>
        /// <param name="colorCode">HTMLカラーコード</param>
        /// <returns>Color4形式の色情報オブジェクト</returns>
        public static SlimDX.Color4 strColorCodeToColor4(string colorCode)
        {
            SlimDX.Color4 ret = new SlimDX.Color4(255, 255, 255);

            //渡される値は「#xxxxxx」を想定。
            if (colorCode.Length != 7)
            {
                return(ret);
            }

            //16進の文字列を2文字ずつ取り出しつつ10進に変換
            float fR = Convert.ToInt32(colorCode.Substring(1, 2), 16);
            float fG = Convert.ToInt32(colorCode.Substring(3, 2), 16);
            float fB = Convert.ToInt32(colorCode.Substring(5, 2), 16);

            fR = fR / 255.0f;
            fG = fG / 255.0f;
            fB = fB / 255.0f;

            return(new SlimDX.Color4(fR, fG, fB));
        }
Exemplo n.º 10
0
        public Device()
        {
            // Default background color
            backgroundColor = new SlimDX.Color4(0.5f, 0.5f, 1.0f);

            form = new SlimDX.Windows.RenderForm()
            {
                Text = "Game",
                WindowState = System.Windows.Forms.FormWindowState.Maximized
            };

            swapChainDescription = new SlimDX.DXGI.SwapChainDescription()
            {
                BufferCount = 1,
                Usage = SlimDX.DXGI.Usage.RenderTargetOutput,
                OutputHandle = form.Handle,
                IsWindowed = true,
                ModeDescription = new SlimDX.DXGI.ModeDescription(form.ClientSize.Width, form.ClientSize.Height, new SlimDX.Rational(60, 1), SlimDX.DXGI.Format.R8G8B8A8_UNorm),
                SampleDescription = new SlimDX.DXGI.SampleDescription(1, 0),
                Flags = SlimDX.DXGI.SwapChainFlags.AllowModeSwitch,
                SwapEffect = SlimDX.DXGI.SwapEffect.Discard
            };

            var result = SlimDX.Direct3D11.Device.CreateWithSwapChain(SlimDX.Direct3D11.DriverType.Hardware, SlimDX.Direct3D11.DeviceCreationFlags.SingleThreaded, swapChainDescription, out device, out swapChain);

            if (result.IsFailure)
            {
                throw new ApplicationException("Failed to initialize DirectX 11.");
            }

            deviceContext = device.ImmediateContext;

            using (var resource = SlimDX.Direct3D11.Resource.FromSwapChain<SlimDX.Direct3D11.Texture2D>(swapChain, 0))
            {
                screenRenderTargetView = new SlimDX.Direct3D11.RenderTargetView(device, resource);
            }

            using (var factory = swapChain.GetParent<SlimDX.DXGI.Factory>())
            {
                result = factory.SetWindowAssociation(form.Handle, SlimDX.DXGI.WindowAssociationFlags.IgnoreAltEnter);

                if (result.IsFailure)
                {
                    throw new ApplicationException("Failed to associate window with DirectX device.");
                }
            }

            viewport = new SlimDX.Direct3D11.Viewport(0.0f, 0.0f, Convert.ToSingle(form.ClientSize.Width), Convert.ToSingle(form.ClientSize.Height));

            deviceContext.Rasterizer.SetViewports(viewport);

            form.KeyDown += (sender, e) =>
            {
                if (e.Alt && e.KeyCode == System.Windows.Forms.Keys.Enter)
                {
                    swapChain.IsFullScreen = !swapChain.IsFullScreen;
                }
            };

            form.UserResized += (sender, e) =>
            {
                var resizeResult = swapChain.ResizeBuffers(2, 0, 0, SlimDX.DXGI.Format.R8G8B8A8_UNorm, SlimDX.DXGI.SwapChainFlags.AllowModeSwitch);

                if (resizeResult.IsSuccess)
                {
                    using (var resource = SlimDX.Direct3D11.Resource.FromSwapChain<SlimDX.Direct3D11.Texture2D>(swapChain, 0))
                    {
                        screenRenderTargetView.Dispose();
                        screenRenderTargetView = new SlimDX.Direct3D11.RenderTargetView(device, resource);
                    }

                    viewport = new SlimDX.Direct3D11.Viewport(0.0f, 0.0f, Convert.ToSingle(form.ClientSize.Width), Convert.ToSingle(form.ClientSize.Height));

                    deviceContext.Rasterizer.SetViewports(viewport);
                }
            };
        }
 public static Color xna(this SlimDX.Color4 v)
 {
     return(new Color(v.ToVector4().xna()));
 }
Exemplo n.º 12
0
        private void Render(DX11RenderContext context, DX11RenderSettings settings)
        {
            if (this.spreadMax == 0)
            {
                return;
            }

            if (this.FInEnabled[0])
            {
                float w = (float)settings.RenderWidth;
                float h = (float)settings.RenderHeight;
                SharpDX.Direct3D11.DeviceContext shaprdxContext = new SharpDX.Direct3D11.DeviceContext(context.CurrentDeviceContext.ComPointer);

                FontWrapper fw = this.FTextRenderer.IsConnected ? this.FTextRenderer[0][context].FontWrapper : FontWrapperFactory.GetWrapper(context, this.dwFactory);

                var renderStates = fw.RenderStates;

                float *rawMatPtr;
                int    transformCount;
                this.transformIn.GetMatrixPointer(out transformCount, out rawMatPtr);

                SharpDX.Matrix *matrixPointer       = (SharpDX.Matrix *)rawMatPtr;
                SlimDX.Matrix * slimDxmatrixPointer = (SlimDX.Matrix *)rawMatPtr;

                bool applyState = this.FStateIn.IsConnected;

                var sView = settings.View;
                var sProj = settings.Projection;

                SharpDX.Matrix view       = *(SharpDX.Matrix *) & sView;
                SharpDX.Matrix projection = *(SharpDX.Matrix *) & sProj;

                var objectsettings        = this.objectSettings[context];
                var orderedobjectsettings = this.orderedObjectSettings[context];
                objectsettings.IterationCount = 1;
                objectsettings.Geometry       = null;

                bool       doOrder       = false;
                List <int> orderedSlices = null;
                if (settings.LayerOrder != null && settings.LayerOrder.Enabled)
                {
                    orderedobjectsettings.Clear();
                    for (int i = 0; i < this.spreadMax; i++)
                    {
                        DX11ObjectRenderSettings objSettings = new DX11ObjectRenderSettings();
                        objSettings.DrawCallIndex  = i;
                        objSettings.Geometry       = null;
                        objSettings.IterationCount = 1;
                        objSettings.IterationIndex = 0;
                        objSettings.WorldTransform = slimDxmatrixPointer[i % transformCount];
                        objSettings.RenderStateTag = null;
                        orderedobjectsettings.Add(objSettings);
                    }

                    orderedSlices = settings.LayerOrder.Reorder(settings, orderedobjectsettings);
                    doOrder       = true;
                }

                int drawCount = doOrder ? orderedSlices.Count : this.spreadMax;

                for (int drawIdx = 0; drawIdx < drawCount; drawIdx++)
                {
                    int            idx      = doOrder ? orderedSlices[drawIdx] : drawIdx;
                    SharpDX.Matrix preScale = SharpDX.Matrix.Scaling(1.0f, -1.0f, 1.0f);

                    SharpDX.Matrix sm = matrixPointer[idx % transformCount];

                    SharpDX.Matrix mat = SharpDX.Matrix.Multiply(preScale, sm);
                    mat = SharpDX.Matrix.Multiply(mat, view);
                    mat = SharpDX.Matrix.Multiply(mat, projection);

                    SlimDX.Color4 color = this.FInColor[idx];
                    color.Alpha *= SharpDX.MathUtil.Clamp(settings.LayerOpacity, 0.0f, 1.0f);
                    SharpDX.Color4 sdxColor = *(SharpDX.Color4 *) & color;

                    objectsettings.DrawCallIndex  = idx;
                    objectsettings.WorldTransform = *(SlimDX.Matrix *) & mat;

                    if (settings.ValidateObject(objectsettings))
                    {
                        if (applyState)
                        {
                            var textLayout = this.FLayout[idx];

                            if (textLayout != null)
                            {
                                renderStates.SetStates(shaprdxContext, 0);

                                context.RenderStateStack.Push(this.FStateIn[idx]);

                                fw.DrawTextLayout(shaprdxContext, new SharpDX.DirectWrite.TextLayout(textLayout.ComPointer), SharpDX.Vector2.Zero,
                                                  mat, sdxColor, TextFlags.StatePrepared);

                                context.RenderStateStack.Pop();
                            }
                        }
                        else
                        {
                            var textLayout = this.FLayout[idx];

                            if (textLayout != null)
                            {
                                fw.DrawTextLayout(shaprdxContext, new SharpDX.DirectWrite.TextLayout(textLayout.ComPointer), SharpDX.Vector2.Zero,
                                                  mat, sdxColor, TextFlags.None);
                            }
                        }
                    }
                }

                //Apply old states back
                context.RenderStateStack.Apply();
                context.CleanShaderStages();
            }
        }
Exemplo n.º 13
0
        private void Render(DX11RenderContext context, DX11RenderSettings settings)
        {
            if (this.spreadMax == 0)
            {
                return;
            }

            if (this.FInEnabled[0])
            {
                float w = (float)settings.RenderWidth;
                float h = (float)settings.RenderHeight;
                SharpDX.Direct3D11.DeviceContext shaprdxContext = new SharpDX.Direct3D11.DeviceContext(context.CurrentDeviceContext.ComPointer);

                FontWrapper fw = this.FTextRenderer.IsConnected ? this.FTextRenderer[0][context].FontWrapper : FontWrapperFactory.GetWrapper(context, this.dwFactory);

                var renderStates = fw.RenderStates;

                float *rawMatPtr;
                int    transformCount;
                this.transformIn.GetMatrixPointer(out transformCount, out rawMatPtr);

                SharpDX.Matrix *matrixPointer = (SharpDX.Matrix *)rawMatPtr;

                bool applyState = this.FStateIn.IsConnected;

                var sView = settings.View;
                var sProj = settings.Projection;

                SharpDX.Matrix view       = *(SharpDX.Matrix *) & sView;
                SharpDX.Matrix projection = *(SharpDX.Matrix *) & sProj;

                var objectsettings = this.objectSettings[context];
                objectsettings.IterationCount = 1;
                objectsettings.Geometry       = null;

                for (int i = 0; i < this.spreadMax; i++)
                {
                    SharpDX.Matrix preScale = SharpDX.Matrix.Scaling(1.0f, -1.0f, 1.0f);

                    SharpDX.Matrix sm = matrixPointer[i % transformCount];

                    SharpDX.Matrix mat = SharpDX.Matrix.Multiply(preScale, sm);
                    mat = SharpDX.Matrix.Multiply(mat, view);
                    mat = SharpDX.Matrix.Multiply(mat, projection);

                    SlimDX.Color4  color    = this.FInColor[i];
                    SharpDX.Color4 sdxColor = *(SharpDX.Color4 *) & color;

                    objectsettings.DrawCallIndex  = i;
                    objectsettings.WorldTransform = *(SlimDX.Matrix *) & mat;

                    if (settings.ValidateObject(objectsettings))
                    {
                        if (applyState)
                        {
                            var textLayout = this.FLayout[i];

                            if (textLayout != null)
                            {
                                renderStates.SetStates(shaprdxContext, 0);

                                context.RenderStateStack.Push(this.FStateIn[i]);

                                fw.DrawTextLayout(shaprdxContext, new SharpDX.DirectWrite.TextLayout(textLayout.ComPointer), SharpDX.Vector2.Zero,
                                                  mat, sdxColor, TextFlags.StatePrepared);

                                context.RenderStateStack.Pop();
                            }
                        }
                        else
                        {
                            var textLayout = this.FLayout[i];

                            if (textLayout != null)
                            {
                                fw.DrawTextLayout(shaprdxContext, new SharpDX.DirectWrite.TextLayout(textLayout.ComPointer), SharpDX.Vector2.Zero,
                                                  mat, sdxColor, TextFlags.None);
                            }
                        }
                    }
                }

                //Apply old states back
                context.RenderStateStack.Apply();
                context.CleanShaderStages();
            }
        }
Exemplo n.º 14
0
 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
 {
     SlimDX.Color4 color = (SlimDX.Color4)value;
     return(System.Windows.Media.Color.FromScRgb(color.Alpha, color.Red, color.Green, color.Blue));
 }
Exemplo n.º 15
0
        private void Render(DX11RenderContext context, DX11RenderSettings settings)
        {
            if (this.spreadMax == 0)
            {
                return;
            }

            if (this.FInEnabled[0])
            {
                float w = (float)settings.RenderWidth;
                float h = (float)settings.RenderHeight;

                if (shaprdxContext == null)
                {
                    shaprdxContext = new SharpDX.Direct3D11.DeviceContext(context.CurrentDeviceContext.ComPointer);
                }

                FontWrapper fw = this.FTextRenderer.IsConnected ? this.FTextRenderer[0][context].FontWrapper : FontWrapperFactory.GetWrapper(context, this.dwFactory);

                var renderStates = fw.RenderStates;

                float *rawMatPtr;
                int    transformCount;
                this.transformIn.GetMatrixPointer(out transformCount, out rawMatPtr);

                SharpDX.Matrix *matrixPointer = (SharpDX.Matrix *)rawMatPtr;

                bool applyState = this.FStateIn.IsConnected;

                var sView = settings.View;
                var sProj = settings.Projection;

                SharpDX.Matrix view       = *(SharpDX.Matrix *) & sView;
                SharpDX.Matrix projection = *(SharpDX.Matrix *) & sProj;

                var objectsettings = this.objectSettings[context];
                objectsettings.IterationCount = 1;
                objectsettings.Geometry       = null;

                for (int i = 0; i < this.spreadMax; i++)
                {
                    SharpDX.Matrix preScale = SharpDX.Matrix.Scaling(1.0f, -1.0f, 1.0f);

                    switch (this.FNormalizeInput[i].Index)
                    {
                    case 1: preScale = SharpDX.Matrix.Scaling(1.0f / w, -1.0f / w, 1.0f); break;

                    case 2: preScale = SharpDX.Matrix.Scaling(1.0f / h, -1.0f / h, 1.0f); break;

                    case 3: preScale = SharpDX.Matrix.Scaling(1.0f / w, -1.0f / h, 1.0f); break;
                    }
                    SharpDX.Matrix sm = matrixPointer[i % transformCount];

                    SharpDX.Matrix mat = SharpDX.Matrix.Multiply(preScale, sm);
                    mat = SharpDX.Matrix.Multiply(mat, view);
                    mat = SharpDX.Matrix.Multiply(mat, projection);

                    objectsettings.DrawCallIndex  = i;
                    objectsettings.WorldTransform = *(SlimDX.Matrix *) & mat;


                    if (settings.ValidateObject(objectsettings))
                    {
                        SlimDX.Color4 color = this.FInColor[i];
                        color.Alpha *= SharpDX.MathUtil.Clamp(settings.LayerOpacity, 0.0f, 1.0f);
                        SharpDX.Color4 sdxColor = *(SharpDX.Color4 *) & color;

                        TextFlags flag = TextFlags.NoWordWrapping;

                        if (this.FHorizontalAlignInput[i].Index == 0)
                        {
                            flag |= TextFlags.Left;
                        }
                        else if (this.FHorizontalAlignInput[i].Index == 1)
                        {
                            flag |= TextFlags.Center;
                        }
                        else if (this.FHorizontalAlignInput[i].Index == 2)
                        {
                            flag |= TextFlags.Right;
                        }

                        if (this.FVerticalAlignInput[i].Index == 0)
                        {
                            flag |= TextFlags.Top;
                        }
                        else if (this.FVerticalAlignInput[i].Index == 1)
                        {
                            flag |= TextFlags.VerticalCenter;
                        }
                        else if (this.FVerticalAlignInput[i].Index == 2)
                        {
                            flag |= TextFlags.Bottom;
                        }

                        string font = this.FFontInput[i].Name;

                        if (applyState)
                        {
                            renderStates.SetStates(shaprdxContext, 0);

                            context.RenderStateStack.Push(this.FStateIn[i]);

                            fw.DrawString(shaprdxContext, this.FInString[i], font, this.FInSize[i],
                                          mat, sdxColor, flag | TextFlags.StatePrepared);

                            context.RenderStateStack.Pop();
                        }
                        else
                        {
                            fw.DrawString(shaprdxContext, this.FInString[i], font, this.FInSize[i],
                                          mat, sdxColor, flag);
                        }
                    }
                }

                //Apply old states back
                context.RenderStateStack.Apply();
                context.CleanShaderStages();
            }
        }
Exemplo n.º 16
0
 public static double[] ToDoubleArray(this SlimDX.Color4 color)
 {
     return(new double[] { color.Red, color.Green, color.Blue, color.Alpha });
 }