dcpp::SDuckcppCreationParameters is used by dcpp::createDeviceEx as params to create duckcpp engine device.
Duckcpp forks irrlicht, dcpp::SDuckcppCreationParameters is renamed from irr::SIrrlichtCreationParameters.
irr::SIrrlichtCreationParameters is not trivially-copyable.
dcpp::SDuckcppCreationParameters has been changed to trivially-copyable and has been tested.
The dcpp::SDuckcppCreationParameters class.
All class member variables have their own default values.
class SDuckcppCreationParameters { public: dcpp::E_DEVICE_TYPE DeviceType = dcpp::EIDT_BEST; dcpp::video::E_DRIVER_TYPE DriverType = dcpp::video::EDT_BURNINGSVIDEO; dcpp::nub::dimension2d<u32> WindowSize = dcpp::nub::dimension2du{1280u, 800u}; dcpp::nub::position2di WindowPosition = dcpp::nub::position2di{-1, -1}; dcpp::u8 Bits = 32u; dcpp::u8 ZBufferBits = 24u; bool FullScreen = false; dcpp::u8 WindowResizable = 2u; bool StencilBuffer = true; bool Vsync = false; dcpp::u8 AntiAlias = 0; bool HandleSRGB = false; bool WithAlphaChannel = false; bool DoubleBuffer = true; bool IgnoreInput = false; bool StereoBuffer = false; bool HighPrecisionFPU = false; dcpp::IEventReceiver* EventReceiver = nullptr; void* WindowId = nullptr; dcpp::ELOG_LEVEL LoggingLevel = #ifdef _DEBUG dcpp::ELL_DEBUG #else dcpp::ELL_INFORMATION #endif ; dcpp::u32 DisplayAdapter = 0; bool DriverMultithreaded = false; bool UsePerformanceTimer = true; constexpr static const dcpp::c8 * const SDK_version_do_not_use = DUCKCPP_SDK_VERSION; };
All class member variables have their own default values.
dcpp::SDuckcppCreationParamters params{ .DriverType = dcpp::video::EDT_SOFTWARE, .WindowSize = dcpp::dimension2du{2560, 1600}, .FullScreen = true };
All attributes are public, no methods.
static_assert(std::is_trivially_copyable_v<dcpp::SDuckcppCreationParamters>);
#include <duckcpp/core.hpp> #include <iostream> int main() { static_assert(std::is_trivially_copyable_v<dcpp::SDuckcppCreationParameters>); dcpp::SDuckcppCreationParameters params{ .DriverType = dcpp::video::EDT_SOFTWARE, .WindowSize = dcpp::nub::dimension2du{1280u, 800u}, .Bits = 32, .FullScreen = false, .StencilBuffer = true, .EventReceiver = nullptr }; params.ZBufferBits = 24u; dcpp::DuckcppDevice * device = dcpp::createDeviceEx(params); device->setWindowCaption(L"duckcpp window"); dcpp::video::IVideoDriver * video = device->getVideoDriver(); dcpp::scene::ISceneManager * scene = device->getSceneManager(); while (device->run()) { if (! device->isWindowActive()) { device->yield(); continue; } // else video->beginScene( dcpp::video::ECBF_COLOR | dcpp::video::ECBF_DEPTH | dcpp::video::ECBF_STENCIL, dcpp::video::SColor{0xff234567} ); scene->drawAll(); video->endScene(); } device->drop(); }