4.51.2.4.43. ogRect() | Table of Contents | 4.51.2.4.45. ogRGBA() |
function ogRGB(red, green, blue:uInt8):uInt32;Remarks:
For all high-colour and true-colour surfaces, this will pack the pixel based on the pixel format of the surface. Different surface can have different RGB orderings and sizes, so it is advised one use this function to generate colour values for other functions. For 8BPP buffers, this function will return the closest colour to the requested RGB value using an imperfect colour matching algorithm.
If the surface has an alpha channel, the default alpha will be encoded
into the pixel.
A totally opaque pixel has an alpha level of 255.
A totally transparent pixel has an alpha level of 0.
How the pixel is rendered to the surface depends on the drawing function
and whether or not blending is enabled.
RGB channels are at most 8-bits wide. This will be changed in a future revision. Will only return a packed pixel for surfaces with a bitdepth of 8, 15, 16, 24, and 32.
See also:{ogRGB.pas} uses ObjGfx40, CRT; var xx, yy, zz:uInt32; begin if not screen^.ogCreate(800, 600, OG_PIXFMT_32BPP) then begin writeln('Error setting video mode'); halt end; {Set up an optimized palette for 256 colours if dealing with 8bpp} with screen^ do if (ogGetBPP = 8) then begin for xx:=0 to 15 do ogSetRGBPalette(xx, (xx+1)*16-1, 255, 0); for xx:=0 to 15 do ogSetRGBPalette(xx+16, 255, 255-((xx+1)*16-1), 0); for xx:=0 to 15 do ogSetRGBPalette(xx+32, 255, 0, (xx+1)*16-1); for xx:=0 to 15 do ogSetRGBPalette(xx+48, 255-((xx+1)*16-1), 0, 255); for xx:=0 to 15 do ogSetRGBPalette(xx+64, 0, ((xx+1)*16-1), 255); for xx:=0 to 15 do ogSetRGBPalette(xx+80, 0 ,255, 255-((xx+1)*16-1)); for xx:=0 to 15 do ogSetRGBPalette(xx+96, 255-((xx+1)*16-1), 255, 255); for xx:=0 to 15 do ogSetRGBPalette(xx+112, 255, 255-((xx+1)*16-1), 255); for xx:=0 to 15 do ogSetRGBPalette(xx+128, 255, 255, 255-((xx+1)*16-1)); for xx:=0 to 15 do ogSetRGBPalette(xx+144, 255, (xx+1)*16-1, (xx+1)*16-1); for xx:=0 to 15 do ogSetRGBPalette(xx+160, (xx+1)*16-1, 255,(xx+1)*16-1); for xx:=0 to 15 do ogSetRGBPalette(xx+176, (xx+1)*16-1, (xx+1)*16-1,255); for xx:=0 to 15 do ogSetRGBPalette(xx+192, (xx+1)*16-1, 255-((xx+1)*16-1), 255); for xx:=0 to 15 do ogSetRGBPalette(xx+208, 255, (xx+1)*16-1, 255-((xx+1)*16-1)); for xx:=0 to 15 do ogSetRGBPalette(xx+224, (xx+1)*16-1, 255, 255-((xx+1)*16-1)); for xx:=0 to 15 do ogSetRGBPalette(xx+240, (xx+1)*16-1, (xx+1)*16-1, (xx+1)*16-1); ogSetRGBPalette(0, 0, 0, 0); for xx:=0 to 255 do ogVLine(xx, 0, 63, xx); end; {if bpp=8} zz := 1; repeat with screen^ do for yy:=0 to 255 do for xx:=0 to 255 do if (yy=0) or (xx=255) or (zz=255) then ogSetPixel(256+128+xx-(zz div 2), 128+yy+(zz div 2), ogRGB(xx, 255-yy, zz)); inc(zz,2); until (keyPressed) or (zz > 255); while keyPressed do readKey; ReadKey; end.
4.51.2.4.43. ogRect() | Table of Contents | 4.51.2.4.45. ogRGBA() |