コード例 #1
0
ファイル: GDIviaAGG.cs プロジェクト: wpwen/SimpleScene
        public Bitmap(int width, int height, PixelFormat format)
        {
            IRecieveBlenderByte byteBlender;
            int bpp;

            switch (format)
            {
            case PixelFormat.Format32bppArgb:
                bpp         = 32;
                byteBlender = new BlenderBGRA();
                break;

            case PixelFormat.Format32bppRgb:
                bpp         = 32;
                byteBlender = new BlenderBGR();
                break;

            case PixelFormat.Format24bppRgb:
                bpp         = 24;
                byteBlender = new BlenderBGR();
                break;

            default:
                throw new NotImplementedException(String.Format("UG.Bitmap unsupported format {0}", format));
            }
            this.buffer = new ImageBuffer(width, height, bpp, byteBlender);
        }
コード例 #2
0
        public override void OnDraw(Graphics2D graphics2D)
        {
            GammaLookUpTable    gamma         = new GammaLookUpTable(gammaSlider.Value);
            IRecieveBlenderByte NormalBlender = new BlenderBGR();
            IRecieveBlenderByte GammaBlender  = new BlenderGammaBGR(gamma);
            ImageBuffer         rasterNormal  = new ImageBuffer();

            rasterNormal.Attach(graphics2D.DestImage, NormalBlender);
            ImageBuffer rasterGamma = new ImageBuffer();

            rasterGamma.Attach(graphics2D.DestImage, GammaBlender);
            ImageClippingProxy clippingProxyNormal = new ImageClippingProxy(rasterNormal);
            ImageClippingProxy clippingProxyGamma  = new ImageClippingProxy(rasterGamma);

            clippingProxyNormal.clear(new RGBA_Floats(1, 1, 1));

            ScanlineRasterizer  ras = new ScanlineRasterizer();
            scanline_unpacked_8 sl  = new scanline_unpacked_8();

            int size_mul = (int)pixelSizeSlider.Value;

            renderer_enlarged ren_en = new renderer_enlarged(size_mul);

            StyledTypeFace type      = new StyledTypeFace(LiberationSansFont.Instance, 12);
            IVertexSource  character = type.GetGlyphForCharacter('E');

            character.rewind(0);
            ras.reset();
            ras.add_path(character);
            ren_en.RenderSolid(clippingProxyGamma, ras, sl, RGBA_Bytes.Black);

            ScanlineRenderer scanlineRenderer = new ScanlineRenderer();

            scanlineRenderer.RenderSolid(clippingProxyGamma, ras, sl, RGBA_Bytes.Black);

            ras.gamma(new gamma_none());

            PathStorage ps = new PathStorage();
            Stroke      pg = new Stroke(ps);

            pg.width(2);

            DrawBigA(graphics2D);

            base.OnDraw(graphics2D);
        }