Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Viper Version 0.1 Design plan

Sign in to follow this  


Finally figured out a way to program the Window manager, and how to make individual windows. First i decided to draw out the idea on paper, and basically i came up with the following solution:

The idea is simple, the Kernel.CPP basically boots up a console screen, in this console screen the user will have the option to start up different window instances. I know from reading that the WNDCLASSEX, and the HWND are the most important functions, the WNDCLASSEX registers the Window, and the Hwnd is the Handle of the Window.

BEcause I am writing this in OOP and I do not want to make one window, but more. I decided to split it up as the picture above. The Hwnd and Window are created in the Window Manager, these values are send to the Window class that will create a class with it. This also means I need to make a global Message queue in windows so that Windows can close the Window whenever needed, or when someone is messing in the window itself by moving around etc. I am not sure how to solve that.

There are 2 solutions:

Have the Window class itself send its messages for translation to the Queue. Or have a individual Message queue for each window class. The last one being the easiest to write ofcourse. But this would mean there is no more OOP going on, and it will be a lot harder to draw multiple windows if I need to make a message queue per window, and it can affect performance ofcourse.

Any suggestions? :) Once the Window Manager is complete today, I will probably focus on writing the D3D engine to render a cube and then see if i can open multiple windows. Perhaps I can make a linked list in the Window Manager to keep track of all the windows it would increase performance I would think.

Sign in to follow this  

1 Comment

Recommended Comments

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • 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!