Mail Archives: djgpp/1999/02/05/14:02:55
I might be wrong, but I thought the Allegro documentation states that you
need to set the color depth before setting the screen mode and that the
default mode is already 8-bit ?
Allens wrote in message <36B9E7D5 DOT 855F0B98 AT cableol DOT co DOT uk>...
>The only problem I can think of is that allegro does not support your
>graphics card. What card is it?
>
> Peter Allen
>
>
>Stephen Gordon wrote:
>>
>> I am trying to learn how to program in DJGPP. I have only just started.
>> I have a
>> P200 with Win95, and have downloaded DJGPP v2.8.1 and Allegro v3.1 (as
>> well
>> as RHIDE). My problem is that my program, which is supposed to display
>> the
>> Mandelbrot set on screen in 256 colors, only does it in 16. The source
>> is below as
>> it's fairly short, and the strange thing is that it works properly on my
>> other more
>> powerful computer which also runs Win95.
>> Any suggestions? (I can't find this in the FAQs)
>>
>> Stephen Gordon
>>
>> PS. I don't know any assembler.
>>
>> Source code below
>> ________________________________________________________________
>>
>> #include "allegro.h"
>>
>> int main()
>> {
>> PALLETE pallete;
>> BITMAP *m_map;
>> RGB temp;
>> int x, y, c;
>> float a, b, aa, bb, m, n;
>>
>> allegro_init();
>> install_keyboard();
>> set_gfx_mode(GFX_AUTODETECT, 800, 600, 0, 0);
>> set_color_depth(8);
>>
>> m_map = create_bitmap(800,600);
>>
>> /* first set the pallete to black to hide what we are doing */
>> for (c=0; c<255; c++){
>> pallete[c].r=0;
>> pallete[c].g=0;
>> pallete[c].b=0;
>> }
>>
>> pallete[1].r=255;
>> pallete[1].g=255;
>> pallete[1].b=255;
>> set_pallete(pallete);
>>
>> /* draw the M-set onto the memory-map */
>> for (y=0; y<600; y++){
>> for (x=0; x<800; x++){
>> a=b=c=aa=bb=0;
>> m=(2*(x-399.5)/399.5)-.5;
>> n=(2*(y-299.5)/299.5);
>> while (((a*a+b*b)<4)&&(c<256)){
>> aa=a*a-b*b+m;
>> bb=2*a*b+n;
>> a=aa;
>> b=bb;
>> c++;
>> }
>> putpixel (m_map, x, y, c);
>> if (y==(int)(0.75*x))
>> putpixel (screen, x, y, 1);
>> }
>> }
>>
>> blit(m_map, screen, 0, 0, 0, 0, 800, 600);
>>
>> /* fill our pallete with a gradually altering sequence of colors */
>> for (c=0; c<64; c++) {
>> pallete[c].r = c;
>> pallete[c].g = 0;
>> pallete[c].b = 0;
>> }
>> for (c=64; c<128; c++) {
>> pallete[c].r = 127-c;
>> pallete[c].g = c-64;
>> pallete[c].b = 0;
>> }
>> for (c=128; c<192; c++) {
>> pallete[c].r = 0;
>> pallete[c].g = 191-c;
>> pallete[c].b = c-128;
>> }
>> for (c=192; c<256; c++) {
>> pallete[c].r = 0;
>> pallete[c].g = 0;
>> pallete[c].b = 255-c;
>> }
>> /* animate the image by rotating the pallete */
>> while (!keypressed()) {
>> temp = pallete[255];
>> for (c=255; c>0; c--)
>> pallete[c] = pallete[c-1];
>> pallete[0] = temp;
>> set_pallete(pallete);
>> }
>>
>> return 0;
>> }
>>
>> ______________________________________________________
>> Get Your Private, Free Email at http://www.hotmail.com
- Raw text -