Summary
My goal is to write a rendering engine using DirectX 11. I plan to write it in an OOP fashion. The plan is to write separate classes. Specifically one class for shader where I can load, compile, bind and set it for usage. Second class for creating vertex buffer, where I can load vertices, bind buffers and set it for rendering.
My Attempts
I wrote one base class `A` for initializing DirectX and maintain 2 objects, `m_device` and `m_device_context`. Then as I wrote `2` subclasses `B` and `C`.At class B I create and bind vertex buffers and At C I compile and bind vertex shaders. Both B and C uses m_device object to create objects and m_device_context to bind/set them.
In subclass B, I use subclass C to compile and bind shaders. Using subclass B I initialize Base class. but at C subclass I get memory Access violation on m_device. this is probably because I have to reinitialize base class but I can't have different instances of DirectX objects.
Question
I have read that global variable or objects are not recommended but How do I solve this problem, How do I maintain global objects that I will need thought the project?
(My question is specifically about C++ implementation, not games)
Aucun commentaire:
Enregistrer un commentaire