@@ -210,26 +210,25 @@ class WindowEventCallback : public IWindow::IEventCallback
210
210
211
211
int main (int argc, char ** argv)
212
212
{
213
- path CWD = path (argv[0 ]).parent_path ().generic_string () + " /" ;
214
- path mediaWD = CWD.generic_string () + " ../../media/" ;
215
- auto system = CommonAPI::createSystem ();
216
- // *** Select stdout/file logger ***
217
- auto logger = make_smart_refctd_ptr<system::CColoredStdoutLoggerWin32>();
218
- // auto logger = system::CFileLogger::create(logFileName);
219
- // *** If you don't want logging, uncomment this one line***
220
- // logger = nullptr;
221
- // **************************************************************************************
213
+ const path CWD = path (argv[0 ]).parent_path ().generic_string () + " /" ;
214
+ const path mediaWD = CWD.generic_string () + " ../../media/" ;
222
215
223
- auto assetManager = core::make_smart_refctd_ptr<IAssetManager>(smart_refctd_ptr (system));
216
+ auto system = CommonAPI::createSystem ();
217
+ // TODO: system->deleteFile("log.txt");
224
218
225
- auto winManager = core::make_smart_refctd_ptr<CWindowManagerWin32>();
226
-
219
+ core::smart_refctd_ptr<system::ILogger> logger;
227
220
{
228
221
system::ISystem::future_t <smart_refctd_ptr<system::IFile>> future;
229
- system->createFile (future, " log.txt" , nbl::system::IFile::ECF_READ_WRITE);
222
+ system->createFile (future, CWD/ " log.txt" , nbl::system::IFile::ECF_READ_WRITE);
230
223
auto file = future.get ();
224
+ logger = core::make_smart_refctd_ptr<system::CFileLogger>(std::move (file),false );
231
225
}
232
226
227
+ auto assetManager = core::make_smart_refctd_ptr<IAssetManager>(smart_refctd_ptr (system));
228
+
229
+ auto winManager = core::make_smart_refctd_ptr<CWindowManagerWin32>();
230
+
231
+
233
232
IWindow::SCreationParams params;
234
233
params.callback = nullptr ;
235
234
params.width = 720 ;
@@ -240,26 +239,36 @@ int main(int argc, char** argv)
240
239
params.flags = IWindow::ECF_NONE;
241
240
params.windowCaption = " Test Window" ;
242
241
243
- auto input = make_smart_refctd_ptr<InputSystem>(system::logger_opt_smart_ptr (logger));
244
- auto windowCb = make_smart_refctd_ptr<WindowEventCallback>(core::smart_refctd_ptr (input),system::logger_opt_smart_ptr (logger));
242
+ auto input = make_smart_refctd_ptr<InputSystem>(system::logger_opt_smart_ptr (smart_refctd_ptr ( logger) ));
243
+ auto windowCb = make_smart_refctd_ptr<WindowEventCallback>(core::smart_refctd_ptr (input),system::logger_opt_smart_ptr (smart_refctd_ptr ( logger) ));
245
244
params.callback = windowCb;
246
245
// *********************************
247
246
auto window = winManager->createWindow (std::move (params));
248
247
auto * cursorControl = window->getCursorControl ();
249
248
250
249
system::ISystem::future_t <smart_refctd_ptr<system::IFile>> future;
251
- system->createFile (future, CWD. generic_string () + " testFile.txt" , core::bitflag (nbl::system::IFile::ECF_READ_WRITE) | IFile::ECF_MAPPABLE);
250
+ system->createFile (future, CWD/ " testFile.txt" , core::bitflag (nbl::system::IFile::ECF_READ_WRITE)/* Growing mappable files are a TODO | IFile::ECF_MAPPABLE*/ );
252
251
auto file = future.get ();
253
- std::string fileData = " Test file data!" ;
254
252
255
- system::future<size_t > writeFuture;
256
- file->write (writeFuture, fileData.data (), 0 , fileData.length ());
257
- assert (writeFuture.get () == fileData.length ());
253
+ {
254
+ const std::string fileData = " Test file data!" ;
258
255
259
- std::string readStr (fileData.length (), ' \0 ' );
260
- system::future<size_t > readFuture;
261
- file->read (readFuture, readStr.data (), 0 , readStr.length ());
262
- assert (readFuture.get () == fileData.length ());
256
+ system::IFile::success_t writeSuccess;
257
+ file->write (writeSuccess, fileData.data (), 0 , fileData.length ());
258
+ {
259
+ const bool success = bool (writeSuccess);
260
+ assert (success);
261
+ }
262
+
263
+ std::string readStr (fileData.length (), ' \0 ' );
264
+ system::IFile::success_t readSuccess;
265
+ file->read (readSuccess, readStr.data (), 0 , readStr.length ());
266
+ {
267
+ const bool success = bool (readSuccess);
268
+ assert (success);
269
+ }
270
+ assert (readStr == fileData);
271
+ }
263
272
264
273
// polling for events!
265
274
InputSystem::ChannelReader<IMouseEventChannel> mouse;
@@ -305,52 +314,26 @@ int main(int argc, char** argv)
305
314
}
306
315
}
307
316
};
308
-
309
- auto bigarch = system->openFileArchive (CWD.generic_string () + " ../../media/sponza.zip" );
310
- system->mount (std::move (bigarch), " sponza" );
311
-
312
- system->copy (CWD.generic_string () + " pngWriteSuccessful.png" , " pngCopy.png" );
313
-
314
- system->createDirectory (CWD.generic_string () + " textures1" );
315
- system->copy (CWD.generic_string () + " textures" , CWD.generic_string () + " textures1" );
316
- system->copy (" sponza/textures" , CWD.generic_string () + " textures" );
317
- system->moveFileOrDirectory (" file.tar" , " movedFile.tar" );
318
- system->listFilesInDirectory (CWD.generic_string () + " textures" );
319
- {
320
- system::future<smart_refctd_ptr<IFile>> fut;
321
- system->createFile (fut, " tarArch/file.txt" , IFile::ECF_READ);
322
- auto file = fut.get ();
323
- {
324
- system::future<smart_refctd_ptr<IFile>> fut;
325
- system->createFile (fut, " tarArch/file.txt" , IFile::ECF_READ);
326
- file = fut.get ();
327
- }
328
- std::string str (5 , ' \0 ' );
329
- system::future<size_t > readFut;
330
- file->read (readFut, str.data (), 0 , 5 );
331
- readFut.get ();
332
- std::cout << str << std::endl;
333
- }
334
317
335
318
IAssetLoader::SAssetLoadParams lp;
336
319
lp.workingDirectory = mediaWD;
337
320
// PNG loader test
338
321
{
339
- auto asset = assetManager->getAsset (" cegui_alfisko/screenshot .png" , lp);
322
+ auto asset = assetManager->getAsset (" Cerberus_by_Andrew_Maximov/Textures/Cerberus_H .png" , lp);
340
323
assert (!asset.getContents ().empty ());
341
- auto cpuImage = static_cast <ICPUImage* >(asset.getContents (). begin ()-> get () );
324
+ auto cpuImage = IAsset::castDown <ICPUImage>(asset.getContents ()[ 0 ] );
342
325
core::smart_refctd_ptr<ICPUImageView> imageView;
326
+
343
327
ICPUImageView::SCreationParams imgViewParams;
344
328
imgViewParams.flags = static_cast <ICPUImageView::E_CREATE_FLAGS>(0u );
345
- imgViewParams.format = E_FORMAT::EF_R8G8B8_UINT ;
329
+ imgViewParams.format = cpuImage-> getCreationParameters (). format ;
346
330
imgViewParams.image = core::smart_refctd_ptr<ICPUImage>(cpuImage);
347
331
imgViewParams.viewType = ICPUImageView::ET_2D;
348
332
imgViewParams.subresourceRange = { static_cast <IImage::E_ASPECT_FLAGS>(0u ),0u ,1u ,0u ,1u };
349
333
imageView = ICPUImageView::create (std::move (imgViewParams));
350
334
351
335
IAssetWriter::SAssetWriteParams wp (imageView.get ());
352
336
wp.workingDirectory = CWD;
353
-
354
337
assetManager->writeAsset (" pngWriteSuccessful.png" , wp);
355
338
}
356
339
// TODO OBJ loader test
@@ -367,7 +350,7 @@ int main(int argc, char** argv)
367
350
{
368
351
auto asset = assetManager->getAsset (" dwarf.jpg" , lp);
369
352
assert (!asset.getContents ().empty ());
370
- auto cpuImage = static_cast <ICPUImage* >(asset.getContents (). begin ()-> get () );
353
+ auto cpuImage = IAsset::castDown <ICPUImage>(asset.getContents ()[ 0 ] );
371
354
core::smart_refctd_ptr<ICPUImageView> imageView;
372
355
ICPUImageView::SCreationParams imgViewParams;
373
356
imgViewParams.flags = static_cast <ICPUImageView::E_CREATE_FLAGS>(0u );
@@ -382,6 +365,40 @@ int main(int argc, char** argv)
382
365
383
366
assetManager->writeAsset (" jpgWriteSuccessful.jpg" , wp);
384
367
}
368
+
369
+
370
+ auto bigarch = system->openFileArchive (CWD/" ../../media/sponza.zip" );
371
+ system->mount (std::move (bigarch), " sponza" );
372
+
373
+ system->copy (CWD/" pngWriteSuccessful.png" , CWD/" pngCopy.png" );
374
+
375
+ system->createDirectory (CWD/" textures1" );
376
+ system->copy (CWD/" textures" , CWD/" textures1" );
377
+ system->copy (" sponza/textures" , CWD/" textures" );
378
+
379
+ const auto items = system->listItemsInDirectory (CWD/" textures" );
380
+ for (const auto & item : items)
381
+ logger->log (" %s" ,system::ILogger::ELL_DEBUG,item.c_str ());
382
+
383
+ /* TODO: Tart Archive reader test
384
+ system->moveFileOrDirectory("file.tar","movedFile.tar");
385
+ {
386
+ system::future<smart_refctd_ptr<IFile>> fut;
387
+ system->createFile(fut, "tarArch/file.txt", IFile::ECF_READ);
388
+ auto file = fut.get();
389
+ {
390
+ system::future<smart_refctd_ptr<IFile>> fut;
391
+ system->createFile(fut, "tarArch/file.txt", IFile::ECF_READ);
392
+ file = fut.get();
393
+ }
394
+ std::string str(5, '\0');
395
+ system::future<size_t> readFut;
396
+ file->read(readFut, str.data(), 0, 5);
397
+ readFut.get();
398
+ std::cout << str << std::endl;
399
+ }
400
+ */
401
+
385
402
while (windowCb->isWindowOpen ())
386
403
{
387
404
input->getDefaultMouse (&mouse);
0 commit comments