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