I wanted to learn Direct3D.. Actually, all I wanted was to experiment with a 2D scroller game, but I figured out from browsing the net that it would require me to have a look at the 3D library.
I dind't have the time and forgot about it.
A few months later I am making a HTPC type of software. Sure I use DirectX for audio, but it would be overkill to use Direct3D to write a few text strings and images onto the screen.
In stead, I use GDI+, the good old Graphics object. It's flicker free and quite fast. As a demo, I did a remake of the classic Space Invaders game and it turned out to run quite smooth.
Have a look at the following example, it should get you started:
public class MainForm : Form
{
private Graphics g;
private Bitmap backbuffer;
public MainForm()
{
backbuffer = new Bitmap(this.Width, this.Height);
g = Graphics.FromImage(backbuffer);
// All painting will occur in the Paint event handler
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint |
ControlStyles.OptimizedDoubleBuffer, true);
}
private void MainForm_Paint(object sender, PaintEventArgs e)
{
g.Clear(Color.Black);
// Draw stuff here
// Flip the backbuffer onto the screen
e.Graphics.DrawImage(backbuffer, new Point(0, 0));
// Draw graphics again
this.Invalidate(false)
}
}
No comments:
Post a Comment