本文整理汇总了C#中PixelInternalFormat类的典型用法代码示例。如果您正苦于以下问题:C# PixelInternalFormat类的具体用法?C# PixelInternalFormat怎么用?C# PixelInternalFormat使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PixelInternalFormat类属于命名空间,在下文中一共展示了PixelInternalFormat类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RenderBuffer
public RenderBuffer(IOpenGL30 gl, int width, int height, PixelInternalFormat internalFormat, int samples)
{
if(gl == null)
throw new ArgumentNullException("gl");
if(width <= 0)
throw new ArgumentException("Width must be greater than 0", "width");
if(height <= 0)
throw new ArgumentException("Height must be greater than 0.", "height");
uint handle = gl.GenRenderBuffer();
if(handle == 0)
throw new NoHandleCreatedException();
Handle = handle;
Width = width;
Height = height;
InternalFormat = internalFormat;
_gl = gl;
gl.BindRenderbuffer(Constants.Renderbuffer, Handle);
gl.RenderbufferStorage(Constants.Renderbuffer, (uint)InternalFormat, Width, Height);
gl.BindRenderbuffer(Constants.Renderbuffer, 0);
}
示例2: Texture
public Texture(int id, int width, int height, TextureTarget target, PixelInternalFormat format)
{
Width = width;
Height = height;
ID = id;
TextureTarget = target;
PixelInternalFormat = format;
}
示例3: RenderTargetTexture
protected RenderTargetTexture(Vector2I size, PixelFormat pixelFormat, PixelInternalFormat internalFormat)
: base(size.X, size.Y)
{
Init2D(pixelFormat, internalFormat);
SetParameters(
TextureMinFilter.Nearest,
TextureMagFilter.Nearest,
TextureWrapMode.ClampToEdge);
}
示例4: AttachDepth
public Framebuffer AttachDepth(PixelInternalFormat internalFormat, PixelFormat format, PixelType type, InterpolationMode interpolation)
{
this.BufferTextures[FboAttachment.DepthAttachment] = new Texture2D (TextureTarget.Texture2D, internalFormat, format, type, interpolation, false, this.Width, this.Height);
this.Bind ();
this.BufferTextures[FboAttachment.DepthAttachment].Bind ();
GL.FramebufferTexture (this.Target, FramebufferAttachment.DepthAttachment, this.BufferTextures[FboAttachment.DepthAttachment].TextureId, 0);
this.Unbind ();
return this;
}
示例5: TextureAttributes
public TextureAttributes(int Width, int Height, int Depth, PixelInternalFormat InternalFormat, OpenTK.Graphics.OpenGL.PixelFormat PixelFormat, PixelType PixelType)
{
this.Width = Width;
this.Height = Height;
this.Depth = Depth;
this.InternalFormat = InternalFormat;
this.PixelFormat = PixelFormat;
this.PixelType = PixelType;
}
示例6: Attachment
public Attachment(AttachmentPoint attachmentPoint, PixelFormat pixelFormat, PixelInternalFormat pixelInternalFormat, PixelType pixelType, int index = 0, bool mipmaps = false)
{
AttachmentPoint = attachmentPoint;
PixelFormat = pixelFormat;
PixelInternalFormat = pixelInternalFormat;
PixelType = pixelType;
Index = index;
MipMaps = mipmaps;
}
示例7: AttachTexture
public Framebuffer AttachTexture(FboAttachment attachment, DrawBuffersEnum mode, PixelInternalFormat internalFormat, PixelFormat format, PixelType type, InterpolationMode interpolation)
{
this.Attachments.Add (mode);
this.BufferTextures[attachment] = new Texture2D (TextureTarget.Texture2D, internalFormat, format, type, interpolation, false, this.Width, this.Height);
this.Bind ();
this.BufferTextures[attachment].Bind ();
GL.FramebufferTexture (this.Target, (FramebufferAttachment) mode, this.BufferTextures[attachment].TextureId, 0);
this.Unbind ();
return this;
}
示例8: Texture
protected Texture(TextureTarget type, PixelInternalFormat format, OpenTK.Graphics.OpenGL.PixelFormat format2, int num) {
ID = GL.GenTexture();
Type = type;
Format = format;
Number = num;
Activate();
}
示例9: GetOpenGLTextureFormat
internal static void GetOpenGLTextureFormat(SurfaceFormat format, out PixelInternalFormat glInternalFormat, out PixelFormat glFormat, out PixelType glType)
{
glInternalFormat = PixelInternalFormat.Rgba;
glFormat = PixelFormat.Rgba;
glType = PixelType.UnsignedByte;
switch (format)
{
case SurfaceFormat.Color:
glInternalFormat = PixelInternalFormat.Rgba;
glFormat = PixelFormat.Rgba;
glType = PixelType.UnsignedByte;
break;
case SurfaceFormat.Bgr565:
glInternalFormat = PixelInternalFormat.Rgb;
glFormat = PixelFormat.Rgb;
glType = PixelType.UnsignedShort565;
break;
case SurfaceFormat.Bgra4444:
glInternalFormat = PixelInternalFormat.Rgba4;
glFormat = PixelFormat.Rgba;
glType = PixelType.UnsignedShort4444;
break;
case SurfaceFormat.Bgra5551:
glInternalFormat = PixelInternalFormat.Rgba;
glFormat = PixelFormat.Rgba;
glType = PixelType.UnsignedShort5551;
break;
case SurfaceFormat.Alpha8:
glInternalFormat = PixelInternalFormat.Luminance;
glFormat = PixelFormat.Luminance;
glType = PixelType.UnsignedByte;
break;
case SurfaceFormat.Dxt1:
glInternalFormat = PixelInternalFormat.CompressedRgbaS3tcDxt1Ext;
glFormat = (PixelFormat)All.CompressedTextureFormats;
break;
case SurfaceFormat.Dxt3:
glInternalFormat = PixelInternalFormat.CompressedRgbaS3tcDxt3Ext;
glFormat = (PixelFormat)All.CompressedTextureFormats;
break;
case SurfaceFormat.Dxt5:
glInternalFormat = PixelInternalFormat.CompressedRgbaS3tcDxt5Ext;
glFormat = (PixelFormat)All.CompressedTextureFormats;
break;
case SurfaceFormat.Single:
glInternalFormat = PixelInternalFormat.R32f;
glFormat = PixelFormat.Red;
glType = PixelType.Float;
break;
default:
throw new NotSupportedException();
}
}
示例10: PixelFormatDescriptor
public PixelFormatDescriptor(
System.Drawing.Imaging.PixelFormat drawingFormat,
PixelInternalFormat glInternalPixelFormat,
PixelFormat glPixelFormat,
PixelType glPixelType)
{
DrawingFormat = drawingFormat;
GLPixelInternalFormat = glInternalPixelFormat;
GLPixelFormat = glPixelFormat;
GLPixelType = glPixelType;
}
示例11: Create
public static Texture Create(int width, int height, PixelInternalFormat internalFormat = PixelInternalFormat.Rgba8
, PixelFormat inputPixelFormat = PixelFormat.Rgba, PixelType type = PixelType.UnsignedByte)
{
var texture = new Texture();
//create empty texture of given size
texture.LoadPixels(IntPtr.Zero, width, height, internalFormat, inputPixelFormat, type);
//set default parameters for filtering and clamping
texture.FilterBilinear();
texture.WrapMode(TextureWrapMode.Repeat);
return texture;
}
示例12: Texture2D
/// <summary>
/// Creates a new managed 2D Texture with an explicitly specified format
/// </summary>
/// <param name="width">The width in Pixels of the Texture</param>
/// <param name="height">The height in Pixels of the Texture</param>
/// <param name="format">The format to use</param>
/// <param name="target">The target this Texture will be bound to</param>
public Texture2D(int width, int height, PixelInternalFormat format, TextureTarget target = TextureTarget.Texture2D)
: base(target)
{
_internalFormat = format;
Activate();
GL.TexParameter(Target, TextureParameterName.TextureWrapS, (int)TextureWrapMode.ClampToEdge); // GL_REPEAT
GL.TexParameter(Target, TextureParameterName.TextureWrapT, (int)TextureWrapMode.ClampToEdge); // GL_REPEAT
GL.TexParameter(Target, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear);
GL.TexParameter(Target, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
Resize(width, height);
}
示例13: TexImage2D
public void TexImage2D(
TextureTarget target,
int level,
PixelInternalFormat internalFormat,
int width,
int height,
int border,
PixelFormat format,
PixelType type,
IntPtr pixels)
{
GraphicsContext.Assert();
GL.TexImage2D(target, level, internalFormat, width, height, border, format, type, pixels);
OpenGlErrorHelper.CheckGlError();
}
示例14: GLTexture2D
public GLTexture2D(string name, IBitmap bmp, bool genmipmaps = false, bool linearfilter = false, OpenTK.Graphics.OpenGL.PixelFormat sourceformat = OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelInternalFormat destformat = PixelInternalFormat.Rgba, PixelType sourcetype = PixelType.UnsignedByte)
: base(name, TextureTarget.Texture2D, bmp.Width, bmp.Height)
{
tex = GL.GenTexture();
GL.BindTexture(TextureTarget.Texture2D, tex);
reattempt_load:
try {
/*BitmapData bmpdata = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
GL.TexImage2D(TextureTarget.Texture2D, 0, destformat, bmpdata.Width, bmpdata.Height, 0, sourceformat, sourcetype, bmpdata.Scan0);
bmp.UnlockBits(bmpdata);*/
bmp.TexImage2D(destformat);
}
catch(OutOfMemoryException) {
GC.WaitForPendingFinalizers();
goto reattempt_load;
}
if(genmipmaps)
{
GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);
if(linearfilter)
{
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapLinear);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
}
else
{
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.NearestMipmapNearest);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Nearest);
}
}
else
{
if(linearfilter)
{
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
}
else
{
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Nearest);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Nearest);
}
}
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.Clamp);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.Clamp);
}
示例15: FBO
/// <summary>
/// Creates a framebuffer object and its associated resources (depth and pbuffers).
/// </summary>
/// <param name="Size">Specifies the size (in pixels) of the framebuffer and it's associated buffers.</param>
/// <param name="Attachments">Specifies the attachments to use for the pbuffers.</param>
/// <param name="Format">Specifies the internal pixel format for the pbuffers.</param>
public FBO(Size Size, FramebufferAttachment[] Attachments, PixelInternalFormat Format, bool Mipmaps)
{
this.Size = Size;
this.Attachments = Attachments;
this.Format = Format;
this.mipmaps = Mipmaps;
// First create the framebuffer
BufferID = Gl.GenFramebuffer();
Gl.BindFramebuffer(FramebufferTarget.Framebuffer, BufferID);
// Create and attach a 24-bit depth buffer to the framebuffer
DepthID = Gl.GenRenderbuffer();
Gl.BindRenderbuffer(RenderbufferTarget.Renderbuffer, DepthID);
Gl.RenderbufferStorage(RenderbufferTarget.Renderbuffer, RenderbufferStorage.DepthComponent24, Size.Width, Size.Height);
// Create n texture buffers (known by the number of attachments)
TextureID = new uint[Attachments.Length];
Gl.GenTextures(Attachments.Length, TextureID);
// Bind the n texture buffers to the framebuffer
for (int i = 0; i < Attachments.Length; i++)
{
Gl.BindTexture(TextureTarget.Texture2D, TextureID[i]);
Gl.TexImage2D(TextureTarget.Texture2D, 0, Format, Size.Width, Size.Height, 0, PixelFormat.Rgba, PixelType.UnsignedByte, IntPtr.Zero);
if (Mipmaps)
{
Gl.TexParameteri(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, 9729); // public const int GL_LINEAR = 9729;
Gl.TexParameteri(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, 9987); // public const int GL_LINEAR_MIPMAP_LINEAR = 9987;
Gl.GenerateMipmap(GenerateMipmapTarget.Texture2D);
}
Gl.FramebufferTexture(FramebufferTarget.Framebuffer, Attachments[i], TextureID[i], 0);
}
// Build the framebuffer and check for errors
Gl.FramebufferRenderbuffer(FramebufferTarget.Framebuffer, FramebufferAttachment.DepthAttachment, RenderbufferTarget.Renderbuffer, DepthID);
FramebufferErrorCode status = Gl.CheckFramebufferStatus(FramebufferTarget.Framebuffer);
if (status != FramebufferErrorCode.FramebufferComplete)
{
Console.WriteLine("Frame buffer did not compile correctly. Returned {0}, glError: {1}", status.ToString(), Gl.GetError().ToString());
}
Gl.BindFramebuffer(FramebufferTarget.Framebuffer, 0);
}