@@ -62,38 +62,55 @@ class ComputeShaderSampleApp : public ApplicationBase
62
62
{
63
63
system = std::move (system);
64
64
}
65
+ video::IAPIConnection* getAPIConnection () override
66
+ {
67
+ return apiConnection.get ();
68
+ }
69
+ video::ILogicalDevice* getLogicalDevice () override
70
+ {
71
+ return logicalDevice.get ();
72
+ }
73
+ video::IGPURenderpass* getRenderpass () override
74
+ {
75
+ return renderpass.get ();
76
+ }
77
+ void setSurface (core::smart_refctd_ptr<video::ISurface>&& s) override
78
+ {
79
+ surface = std::move (s);
80
+ }
81
+ void setFBOs (std::vector<core::smart_refctd_ptr<video::IGPUFramebuffer>>& f) override
82
+ {
83
+ for (int i = 0 ; i < f.size (); i++)
84
+ {
85
+ fbo[i] = core::smart_refctd_ptr (f[i]);
86
+ }
87
+ }
88
+ void setSwapchain (core::smart_refctd_ptr<video::ISwapchain>&& s) override
89
+ {
90
+ swapchain = std::move (s);
91
+ }
92
+ uint32_t getSwapchainImageCount () override
93
+ {
94
+ return SC_IMG_COUNT;
95
+ }
96
+ virtual nbl::asset::E_FORMAT getDepthFormat () override
97
+ {
98
+ return nbl::asset::EF_D32_SFLOAT;
99
+ }
65
100
66
101
APP_CONSTRUCTOR (ComputeShaderSampleApp);
67
102
68
103
void onAppInitialized_impl () override
69
104
{
70
- CommonAPI::SFeatureRequest<video::IAPIConnection::E_FEATURE> requiredInstanceFeatures = {};
71
- requiredInstanceFeatures.count = 1u ;
72
- video::IAPIConnection::E_FEATURE requiredFeatures_Instance[] = { video::IAPIConnection::EF_SURFACE };
73
- requiredInstanceFeatures.features = requiredFeatures_Instance;
74
-
75
- CommonAPI::SFeatureRequest<video::IAPIConnection::E_FEATURE> optionalInstanceFeatures = {};
76
-
77
- CommonAPI::SFeatureRequest<video::ILogicalDevice::E_FEATURE> requiredDeviceFeatures = {};
78
- requiredDeviceFeatures.count = 1u ;
79
- video::ILogicalDevice::E_FEATURE requiredFeatures_Device[] = { video::ILogicalDevice::EF_SWAPCHAIN };
80
- requiredDeviceFeatures.features = requiredFeatures_Device;
81
-
82
- CommonAPI::SFeatureRequest< video::ILogicalDevice::E_FEATURE> optionalDeviceFeatures = {};
83
-
84
105
const auto swapchainImageUsage = static_cast <asset::IImage::E_USAGE_FLAGS>(asset::IImage::EUF_COLOR_ATTACHMENT_BIT | asset::IImage::EUF_STORAGE_BIT);
85
106
const video::ISurface::SFormat surfaceFormat (asset::EF_B8G8R8A8_UNORM, asset::ECP_COUNT, asset::EOTF_UNKNOWN);
86
107
87
108
CommonAPI::InitOutput initOutput;
88
109
initOutput.window = core::smart_refctd_ptr (window);
89
- CommonAPI::Init (
110
+ CommonAPI::InitWithDefaultExt (
90
111
initOutput,
91
- video::EAT_OPENGL_ES ,
112
+ video::EAT_OPENGL ,
92
113
" 02.ComputeShader" ,
93
- requiredInstanceFeatures,
94
- optionalInstanceFeatures,
95
- requiredDeviceFeatures,
96
- optionalDeviceFeatures,
97
114
WIN_W, WIN_H, SC_IMG_COUNT,
98
115
swapchainImageUsage,
99
116
surfaceFormat);
0 commit comments