Add irrlicht device pointer to vulkan driver
This commit is contained in:
parent
78f871d7f2
commit
ac5351ae5e
@ -34,7 +34,8 @@ namespace GE
|
||||
public:
|
||||
|
||||
//! constructor
|
||||
GEVulkanDriver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, SDL_Window* window);
|
||||
GEVulkanDriver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, SDL_Window* window,
|
||||
IrrlichtDevice* device);
|
||||
|
||||
//! destructor
|
||||
virtual ~GEVulkanDriver();
|
||||
@ -332,6 +333,7 @@ namespace GE
|
||||
std::unique_lock<std::mutex> getGraphicsQueue(VkQueue* queue) const;
|
||||
void waitIdle();
|
||||
void setDisableWaitIdle(bool val) { m_disable_wait_idle = val; }
|
||||
IrrlichtDevice* getIrrlichtDevice() const { return m_irrlicht_device; }
|
||||
private:
|
||||
struct SwapChainSupportDetails
|
||||
{
|
||||
@ -448,6 +450,8 @@ namespace GE
|
||||
SDL_Window* m_window;
|
||||
bool m_disable_wait_idle;
|
||||
|
||||
IrrlichtDevice* m_irrlicht_device;
|
||||
|
||||
void createInstance(SDL_Window* window);
|
||||
void findPhysicalDevice();
|
||||
bool checkDeviceExtensions(VkPhysicalDevice device);
|
||||
|
@ -450,9 +450,10 @@ std::atomic_bool g_schedule_pausing_rendering(false);
|
||||
std::atomic_bool g_paused_rendering(false);
|
||||
|
||||
GEVulkanDriver::GEVulkanDriver(const SIrrlichtCreationParameters& params,
|
||||
io::IFileSystem* io, SDL_Window* window)
|
||||
io::IFileSystem* io, SDL_Window* window,
|
||||
IrrlichtDevice* device)
|
||||
: CNullDriver(io, core::dimension2d<u32>(0, 0)),
|
||||
m_params(params)
|
||||
m_params(params), m_irrlicht_device(device)
|
||||
{
|
||||
m_vk.reset(new VK());
|
||||
m_physical_device = VK_NULL_HANDLE;
|
||||
@ -2029,9 +2030,10 @@ namespace irr
|
||||
namespace video
|
||||
{
|
||||
IVideoDriver* createVulkanDriver(const SIrrlichtCreationParameters& params,
|
||||
io::IFileSystem* io, SDL_Window* window)
|
||||
io::IFileSystem* io, SDL_Window* window,
|
||||
IrrlichtDevice* device)
|
||||
{
|
||||
return new GE::GEVulkanDriver(params, io, window);
|
||||
return new GE::GEVulkanDriver(params, io, window, device);
|
||||
} // createVulkanDriver
|
||||
}
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ namespace irr
|
||||
#endif
|
||||
#ifdef _IRR_COMPILE_WITH_VULKAN_
|
||||
IVideoDriver* createVulkanDriver(const SIrrlichtCreationParameters& params,
|
||||
io::IFileSystem* io, SDL_Window* win);
|
||||
io::IFileSystem* io, SDL_Window* win, IrrlichtDevice* device);
|
||||
#endif
|
||||
} // end namespace video
|
||||
|
||||
@ -637,7 +637,7 @@ void CIrrDeviceSDL::createDriver()
|
||||
#ifdef _IRR_COMPILE_WITH_VULKAN_
|
||||
try
|
||||
{
|
||||
VideoDriver = video::createVulkanDriver(CreationParams, FileSystem, Window);
|
||||
VideoDriver = video::createVulkanDriver(CreationParams, FileSystem, Window, this);
|
||||
}
|
||||
catch (std::exception& e)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user