示例#1
0
        public Texture2d LoadTexture(sd.Bitmap bitmap)
        {
            var            sdbmp = (sd.Bitmap)bitmap.Clone();
            TextureWrapper tw    = new TextureWrapper();

            tw.SDBitmap = sdbmp;
            return(new Texture2d(this, tw, bitmap.Width, bitmap.Height));
        }
示例#2
0
        public Texture2d LoadTexture(BitmapBuffer bmp)
        {
            //definitely needed (by TextureFrugalizer at least)
            var sdbmp = bmp.ToSysdrawingBitmap();
            var tw    = new TextureWrapper();

            tw.SDBitmap = sdbmp;
            return(new Texture2d(this, tw, bmp.Width, bmp.Height));
        }
示例#3
0
        public Texture2d LoadTexture(BitmapBuffer bmp)
        {
            //definitely needed (by TextureFrugalizer at least)
            var    sdbmp = bmp.ToSysdrawingBitmap();
            IntPtr id    = GenTexture();
            var    tw    = new TextureWrapper();

            tw.SDBitmap = sdbmp;
            ResourceIDs.Lookup[id.ToInt32()] = tw;
            return(new Texture2d(this, id, null, bmp.Width, bmp.Height));
        }
示例#4
0
        public Texture2d LoadTexture(sd.Bitmap bitmap)
        {
            var            sdbmp = (sd.Bitmap)bitmap.Clone();
            TextureWrapper tw    = new TextureWrapper();

            tw.SDBitmap = sdbmp;
            IntPtr id = GenTexture();

            ResourceIDs.Lookup[id.ToInt32()] = tw;
            return(new Texture2d(this, id, null, bitmap.Width, bitmap.Height));
        }
示例#5
0
        public unsafe RenderTarget CreateRenderTarget(int w, int h)
        {
            TextureWrapper tw = new TextureWrapper();

            tw.SDBitmap = new Bitmap(w, h, sdi.PixelFormat.Format32bppArgb);
            var tex = new Texture2d(this, tw, w, h);

            RenderTargetWrapper rtw = new RenderTargetWrapper(this);
            var rt = new RenderTarget(this, rtw, tex);

            rtw.Target = rt;
            return(rt);
        }
示例#6
0
        public void TexParameter2d(TextureParameterName pname, int param)
        {
            if (CurrentBoundTexture == null)
            {
                return;
            }

            TextureWrapper tw = TextureWrapperForTexture(CurrentBoundTexture);

            if (pname == TextureParameterName.TextureMinFilter)
            {
                tw.MinFilter = (TextureMinFilter)param;
            }
            if (pname == TextureParameterName.TextureMagFilter)
            {
                tw.MagFilter = (TextureMagFilter)param;
            }
        }
示例#7
0
        void PrepDraw(sd.Graphics g, TextureWrapper tw)
        {
            //TODO - we can support bicubic for the final presentation..
            if ((int)tw.MagFilter != (int)tw.MinFilter)
            {
                throw new InvalidOperationException("tw.MagFilter != tw.MinFilter");
            }
            if (tw.MagFilter == TextureMagFilter.Linear)
            {
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear;
            }
            if (tw.MagFilter == TextureMagFilter.Nearest)
            {
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
            }


            //---------

            if (CurrentBlendState == Gdi.BlendNormal)
            {
                g.CompositingMode    = sd.Drawing2D.CompositingMode.SourceOver;
                g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.Default;                 //?

                //CurrentImageAttributes.ClearColorMatrix(ColorAdjustType.Bitmap);
            }
            else
            //if(CurrentBlendState == Gdi.BlendNoneCopy)
            //if(CurrentBlendState == Gdi.BlendNoneOpaque)
            {
                g.CompositingMode    = sd.Drawing2D.CompositingMode.SourceCopy;
                g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;

                //WARNING : DO NOT USE COLOR MATRIX TO WIPE THE ALPHA
                //ITS SOOOOOOOOOOOOOOOOOOOOOOOOOOOO SLOW
                //instead, we added kind of hacky support for 24bpp images
            }
        }
示例#8
0
 public Texture2d LoadTexture(BitmapBuffer bmp)
 {
     //definitely needed (by TextureFrugalizer at least)
     var sdbmp = bmp.ToSysdrawingBitmap();
     IntPtr id = GenTexture();
     var tw = new TextureWrapper();
     tw.SDBitmap = sdbmp;
     ResourceIDs.Lookup[id.ToInt32()] = tw;
     return new Texture2d(this, id, null, bmp.Width, bmp.Height);
 }
示例#9
0
 public Texture2d LoadTexture(sd.Bitmap bitmap)
 {
     var sdbmp = (sd.Bitmap)bitmap.Clone();
     TextureWrapper tw = new TextureWrapper();
     tw.SDBitmap = sdbmp;
     IntPtr id = GenTexture();
     ResourceIDs.Lookup[id.ToInt32()] = tw;
     return new Texture2d(this, id, null, bitmap.Width, bitmap.Height);
 }
示例#10
0
        public unsafe RenderTarget CreateRenderTarget(int w, int h)
        {
            TextureWrapper tw = new TextureWrapper();
            tw.SDBitmap = new Bitmap(w,h, sdi.PixelFormat.Format32bppArgb);
            IntPtr texid = GenTexture();
            ResourceIDs.Lookup[texid.ToInt32()] = tw;
            var tex = new Texture2d(this, texid, null, w, h);

            var rt = new RenderTarget(this, ResourceIDs.Alloc(ResourceIdManager.EResourceType.RenderTarget), tex);
            int id = rt.Id.ToInt32();
            RenderTargetWrapper rtw = new RenderTargetWrapper(this);
            rtw.Target = rt;
            ResourceIDs.Lookup[id] = rtw;
            return rt;
        }
示例#11
0
		public unsafe RenderTarget CreateRenderTarget(int w, int h)
		{
			TextureWrapper tw = new TextureWrapper();
			tw.SDBitmap = new Bitmap(w,h, sdi.PixelFormat.Format32bppArgb);
			var tex = new Texture2d(this, tw, w, h);

			RenderTargetWrapper rtw = new RenderTargetWrapper(this);
			var rt = new RenderTarget(this, rtw, tex);
			rtw.Target = rt;
			return rt;
		}
示例#12
0
		public Texture2d LoadTexture(BitmapBuffer bmp)
		{
			//definitely needed (by TextureFrugalizer at least)
			var sdbmp = bmp.ToSysdrawingBitmap();
			var tw = new TextureWrapper();
			tw.SDBitmap = sdbmp;
			return new Texture2d(this, tw, bmp.Width, bmp.Height);
		}
示例#13
0
		public Texture2d LoadTexture(sd.Bitmap bitmap)
		{
			var sdbmp = (sd.Bitmap)bitmap.Clone();
			TextureWrapper tw = new TextureWrapper();
			tw.SDBitmap = sdbmp;
			return new Texture2d(this, tw, bitmap.Width, bitmap.Height);
		}
示例#14
0
        void PrepDraw(sd.Graphics g, TextureWrapper tw)
        {
            //TODO - we can support bicubic for the final presentation..
            if ((int)tw.MagFilter != (int)tw.MinFilter)
                throw new InvalidOperationException("tw.MagFilter != tw.MinFilter");
            if (tw.MagFilter == TextureMagFilter.Linear)
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear;
            if (tw.MagFilter == TextureMagFilter.Nearest)
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;

            //---------

            if (CurrentBlendState == Gdi.BlendNormal)
            {
                g.CompositingMode = sd.Drawing2D.CompositingMode.SourceOver;
                g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.Default; //?

                //CurrentImageAttributes.ClearColorMatrix(ColorAdjustType.Bitmap);
            }
            else
            //if(CurrentBlendState == Gdi.BlendNoneCopy)
            //if(CurrentBlendState == Gdi.BlendNoneOpaque)
            {
                g.CompositingMode = sd.Drawing2D.CompositingMode.SourceCopy;
                g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;

                //WARNING : DO NOT USE COLOR MATRIX TO WIPE THE ALPHA
                //ITS SOOOOOOOOOOOOOOOOOOOOOOOOOOOO SLOW
                //instead, we added kind of hacky support for 24bpp images
            }
        }