Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

xProwler

filling a pixel... sure, SOUNDS easy.

This topic is 7022 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Advertisement
Guest Anonymous Poster
Funkymunky sounds like a nice chap
could you do a quick DDraw example?
the SDK is giving me a freakin headache...

just a fullscreen 640*480 or sumthing with lots of comments and how to put a single pixel. Thanks on beforehand.

Share this post


Link to post
Share on other sites
Now that I have that info, I still can't get the book for another 4 or 5 weeks. I have to buy some pics from my sisters wedding and get new shoes, a new wallet, some other things, and I really need a TNT2 ultra if I get the $ :P Anyway, I'm gonna try and get the book before the TNT2 and after the rest if I have the $ on that paycheck.. but if i go from $0 to $260 then the TNT2U it is :p Even if I get it ASAP, I have a dilemma. I have like weeks to kill before then. I love C++, I have learned tons about it, but can't use it really without any kind of graphics. I want to start writing my own game - can someone help me with a way, using basic C++ and VC++6 standard edition, to fill a pixel? I was told at first I could just write to a000:0000, but then they said that I couldn't, they being some friends of mine, and I don't know how to write to a specific location like that anyway. (sigh). If you can help me I would greatly appreciate it.

xProwler

Share this post


Link to post
Share on other sites
OK, sure, here's an example of putting a pixel to the primary buffer (the screen that you see). I hope this helps.

I won't cover any windows that is not completely necessary, because it is a pain in the ass.

[CODE]
// Include DirectDraw thrash
#include

// * Gasp! global variables! *
LPDIRECTDRAW lpdd;
LPDIRECTDRAWSURFACE primary;

// Later down in the code, in the main loop
// (i'm assuming you put this stuff in a
// separate function

// Create Direct Draw Object
if(DirectDrawCreate(NULL,&lpdd,NULL)!=DD_OK)
return(0);
// Now set cooperative level
if(lpdd->SetCooperativeLevel(window_handle, DDSCL_FULLSCREEN | DDSCL_EXLCUSIVE | DDSCL_ALLOWREBOOT)!=DD_OK)
return(0);
// Now set the display mode
if(lpdd->SetDisplayMode(640,480,16)!=DD_OK)
return(0);

// Now set up the primary surface
DDSURFACEDESC ddsd;
// Fill the big happy house to 0
memset(&ddsd,0,sizeof(DDSURFACEDESC));
// Set data fields
ddsd.dwSize=sizeof(ddsd);
ddsd.dwFlags=DDSD_CAPS;
ddsd.ddsCaps=dwCaps=DDSCAPS_PRIMARYSURFACE;

// create the primary surface
if(lpdd->CreateSurface(&ddsd,&primary,NULL)!=DD_OK)
return(0);

// Now get the video pointer
USHORT *vidmem_ptr;

// Lock the primary surface
primary->Lock(NULL,&ddsd,DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);

// Now get the address of the memory and stuff it into the pointer
vidmem_ptr=(USHORT *)ddsd.lpSurface;
// Now set up where you want the pixel to go
int x=320,y=240,col=40;
// Now plot the pixel
vidmem_ptr[x+(y*ddsd.lPitch >> 1)] =col;

// Unlock the display memory
primary->Unlock(NULL);

Whew! Now here's how to shut down DirectX:

lpdd->Release();
primary->Release();


Hope that helps!

------------------
That's how you do it, but that's just the opinion of a MADMAN!!! BWAHAHAAHAHA! :D :D :D

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!