So, after the past week or so I have been searching for a good 2D game programming book / tutorial in Direct2D. Why D2D, you ask, and not. Hello, so I read a lot of marketing blabla that Direct2D is a great api for 2D Does anyone knows a Direct2D tutorial that shows how to use it. Further material is available on Pluralsight where Kenny Kerr has a series of tutorials on Direct2D fundamentals. It’s the best coverage of.

Author: Meztirg Kejas
Country: Bahamas
Language: English (Spanish)
Genre: Education
Published (Last): 7 August 2017
Pages: 298
PDF File Size: 9.45 Mb
ePub File Size: 17.68 Mb
ISBN: 460-7-55086-829-7
Downloads: 51464
Price: Free* [*Free Regsitration Required]
Uploader: Zuk

This topic walks you through direct2x process of creating the DemoApp class, which creates a window and uses Direct2D to draw a grid and two rectangles.

In this tutorial, you learn how to create Direct2D resources and draw basic shapes. You also learn how to structure your application to enhance performance by minimizing resource eirect2d. To follow the tutorial, you can use Microsoft Visual Studio to create a Win32 project and then replace the code in the main application header and cpp file with the code described in this tutorial. In this step, you set up your application to use Direct2D by adding the necessary headers and macros.

You also declare the methods and data members you’ll use in later parts of this tutorial. Declare additional functions for releasing interfaces and macros for error handling and retrieving the module’s base address. Declare methods for initializing the class, creating and discarding resources, handling the message loop, rendering content, and the windows procedure.

Programming Direct2D – Part 1 – CodeProject

In this part, you implement the DemoApp constructor and destructor, its initialization and message looping methods, and the WinMain function. Most of these methods look the same as those found in any other Win32 application.


The only exception is the Initialize method, which calls the CreateDeviceIndependentResources method which you define in the next part that creates several Direct2D resources.

In the class implementation file, implement the class direc2d and destructor. The constructor should initialize its members to NULL.

The destructor should release any interfaces stored as class members. RunMessageLoop method that translates and dispatches messages. Implement the Initialize method that creates the window, shows it, and calls the DemoApp:: You implement the CreateDeviceIndependentResources method in the next section.

Create the WinMain method that serves as the application entry point. Initialize an instance of the DemoApp class and begin its message loop. In this part, you create the Direct2D resources that you use to draw. Direct2D provides two types of resources: Device-dependent resources are associated with a particular rendering device and will cease to function if that device is removed.

This method creates the window’s device-dependent resources, a render target, and two brushes. The following code shows the complete CreateDeviceResources method. In this method, release the render target and the two brushes you created in the DemoApp:: In this part, you implement the windows procedure, the OnRender method that paints content, and the OnResize method that adjusts the size of the render target when the window is resized.

WndProc method to handle window messages. OnResize method and pass it the new width and height. OnRender method to paint the window. You implement the OnRender and OnResize methods in the steps that follow.

Then call the CreateDeviceResource method. This method is called every time the window is painted.


Drawing Primitives

Recall that, in step 4 of Part 3, you added an if statement to prevent the method from doing any work if the render target already exists. Inside the if statement you just created, initiate drawing by calling the render target’s BeginDraw method. Set the render target’s transform to the identity matrix, and clear the window.

Draw a grid background by using a for loop and the render target’s Turorial method to draw a series of lines. Use the render target’s FillRectangle method to paint the interior of the first rectangle with the gray brush. Use the render target’s DrawRectangle method to paint the outline of the second rectangle with the cornflower blue brush.

Call the render target’s EndDraw method.

Close the if statement you began in Step 3. If it indicates that the render target needs to be recreated, call the DemoApp:: OnResize method so that it resizes the render target to the new size of the window. To use Direct2D, ensure that your application includes the d2d1.

You can find d2d1. In this tutorial, you learned how to create Direct2D resources and draw tutoriwl shapes.

You also learned how to structure your application to enhance performance by diredt2d resource creation. Improving the Performance of Direct2D. Note To use Direct2D, ensure that your application includes the d2d1.