RE: Palettes..GRAPHICS

new topic     » goto parent     » topic index » view thread      » older message » newer message

Darn!!! how did i forget that lib?... thanx a lot mike.

I remember using it in my previous programs, i owe you one :P

Jordah

Mike wrote:
> Jordah,
> 
> Before I wrapped the DibDraw functions (in my small Dib functions 
> library)I had looked at using all the usual palette functions as you 
> have. I then realized that things were a whole lot simpler using 
> DibDraw, albeit somewhat slower. Why don't you try using my Dib 
> functions instead?
> 
> Regards,
> Mike
> 
> 
> jordah ferguson wrote:
> > Hi All,
> > 
> >     Below is a 256 system palette(syspal) my routine creates. The 
> > problem is that i have a 16 Color
> > Video card. When i attempt to test it, it just gives me a black color 
> > since my display device 
> > cannot output more than 16 colors. I want to create a logical palette 
> > for my draw window
> > DC but with the GDI functions i have to fill in these bits as RGB 
> > quads,CreatePalette,
> > then SelectPalette() followed by RealizePalette().
> > 
> > 	The only helpful routine i have coded using the GDI routines to give me 
> > 
> > 
> > a palette
> > is GetSystemPaletteEntries() which only gives me 16 colors as supposed 
> > to. I know i can do this
> > another way by simply enumerating the graphical solid pens but according 
> > 
> > 
> > to my predictions, is that
> > this method will just simply return to me 16 colors......
> > 
> > I know there is a way things can be done and most colors shown on screen 
> > 
> > 
> > but how, is the problem
> > for example i have AHA icon editor that displays all or most of the 256 
> > colors. So how do they
> > do it? to they directly do low-level stuff on the Display Card which GDI 
> > 
> > 
> > safely doesn't do? Also could some one create a loop either using 
> > SetPixel or any other graphical
> > functions using the system palette entries i have presented below and 
> > tell me the 
> > output is like... ie sufficient/lucks many other colors. Thanx.
> > 
> > Jordah Ferguson.
> > 
> > function RGB(sequence Triad)
> >   return Triad[1] + 
> > 	 Triad[2] * 256 + 
> > 	 Triad[3] * 65536 
> >   -- Triad[4] is flag; so ignored when getting COLORREF Value
> > end function
> > --------------------------------------------------------
> > 
> > function PeekPalette(atom addr,integer x)
> >    sequence res
> >    integer i i = 0
> >    res = repeat(0,x)
> >    for n = 1 to x-1 do
> >       res[n] = RGB(peek({addr + i,4}))
> >       i += 4
> >    end for
> >    res[x] = RGB(peek({addr + i,4}))
> >    return res
> > end function
> > --------------------------------------------------------
> > 
> > global function GetSystemPaletteEntries(atom HDC,integer start,integer 
> > n)
> >   -- n is the number of palette entries you want to receive; i use 20 on 
> > my PC
> >   -- start is the index of the first color you want to receive from DC
> >   -- HDC is the display Context of desired window
> >    atom Pointer,x
> >    sequence pal pal = {}
> >    Pointer = allocate(4 * n)
> >    x = c_func(zGetSystemPaletteEntries,{HDC,start,n,Pointer})
> >    pal = PeekPalette(Pointer,n)
> >    free(Pointer)
> >    return pal
> > end function
> > -------------------------------------------------------
> > 
> > constant syspal = 
> >   
> > {#0,#2A0000,#2A00,#2A2A00,#2A,#2A002A,#152A,#2A2A2A,#151515,#3F1515,#153F15,
> > 
> > 
> >
> > #3F3F15,#15153F,#3F153F,#153F3F,#3F3F3F,#0,#50505,#80808,#B0B0B,#E0E0E,#111111,
> > 
> > 
<snip>

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu