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)); }
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)); }
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)); }
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)); }
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); }
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; } }
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 } }
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); }
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); }
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; }
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; }
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); }
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); }
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 } }