Axiom.RenderSystems.OpenGL.GLPixelUtil.GetClosestPixelFormat C# (CSharp) Метод

GetClosestPixelFormat() публичный статический Метод

Function to get the closest matching OGRE format to an internal GL format. To be precise, the format will be chosen that is most efficient to transfer to the card without losing precision.
It is valid for this function to always return PixelFormat.A8R8G8B8.
public static GetClosestPixelFormat ( int format ) : PixelFormat
format int
Результат PixelFormat
		public static PixelFormat GetClosestPixelFormat( int format )
		{
			switch ( format )
			{
				case Gl.GL_LUMINANCE8:
					return PixelFormat.L8;
				case Gl.GL_LUMINANCE16:
					return PixelFormat.L16;
				case Gl.GL_ALPHA8:
					return PixelFormat.A8;
				//case Gl.GL_LUMINANCE4_ALPHA4:
				//    // Unsupported by GL as input format, use the byte packed format
				//    return PixelFormat.BYTE_LA;
				//case Gl.GL_LUMINANCE8_ALPHA8:
				//    return PixelFormat.BYTE_LA;
				case Gl.GL_R3_G3_B2:
					return PixelFormat.R3G3B2;
				case Gl.GL_RGB5_A1:
					return PixelFormat.A1R5G5B5;
				case Gl.GL_RGB5:
					return PixelFormat.R5G6B5;
				case Gl.GL_RGBA4:
					return PixelFormat.A4R4G4B4;
				case Gl.GL_RGB8:
					return PixelFormat.X8R8G8B8;
				case Gl.GL_RGBA8:
					return PixelFormat.A8R8G8B8;
				case Gl.GL_RGB10_A2:
					return PixelFormat.A2R10G10B10;
				case Gl.GL_RGBA16:
					return PixelFormat.SHORT_RGBA;
				//case Gl.GL_RGB16:
				//    return PixelFormat.SHORT_RGB;
				//case Gl.GL_LUMINANCE16_ALPHA16:
				//    return PixelFormat.SHORT_GR;
				case Gl.GL_LUMINANCE_FLOAT16_ATI:
					return PixelFormat.FLOAT16_R;
				//case Gl.GL_LUMINANCE_ALPHA_FLOAT16_ATI:
				//    return PixelFormat.FLOAT16_GR;
				//case Gl.GL_LUMINANCE_ALPHA_FLOAT32_ATI:
				//    return PixelFormat.FLOAT32_GR;
				case Gl.GL_LUMINANCE_FLOAT32_ATI:
					return PixelFormat.FLOAT32_R;
				case Gl.GL_RGB_FLOAT16_ATI: // Gl.GL_RGB16F_ARB
					return PixelFormat.FLOAT16_RGB;
				case Gl.GL_RGBA_FLOAT16_ATI:
					return PixelFormat.FLOAT16_RGBA;
				case Gl.GL_RGB_FLOAT32_ATI:
					return PixelFormat.FLOAT32_RGB;
				case Gl.GL_RGBA_FLOAT32_ATI:
					return PixelFormat.FLOAT32_RGBA;
				case Gl.GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
				case Gl.GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
					return PixelFormat.DXT1;
				case Gl.GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
					return PixelFormat.DXT3;
				case Gl.GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
					return PixelFormat.DXT5;
				default:
					return PixelFormat.A8R8G8B8;
			}
		}

Usage Example

Пример #1
0
        public GLRenderBuffer(int format, int width, int height, int fsaa)
            : base(width, height, 1, GLPixelUtil.GetClosestPixelFormat(format), BufferUsage.WriteOnly)
        {
            GLFormat = format;
            /// Generate renderbuffer
            Gl.glGenRenderbuffersEXT(1, out this._renderBufferId);
            /// Bind it to FBO
            Gl.glBindRenderbufferEXT(Gl.GL_RENDERBUFFER_EXT, this._renderBufferId);

            /// Allocate storage for depth buffer
            Gl.glRenderbufferStorageEXT(Gl.GL_RENDERBUFFER_EXT, format, width, height);
        }
All Usage Examples Of Axiom.RenderSystems.OpenGL.GLPixelUtil::GetClosestPixelFormat