#pragma once #include #include #include #define G_ASSERT( COND ) \ do \ { \ auto _result = ( COND ); \ if ( not _result ) \ { \ __debugbreak(); \ assert( _result&& #COND ); \ } \ } \ while ( false ) #define ASSERT( COND ) G_ASSERT( COND ) #define VK_CHECK( RESULT ) \ do \ { \ auto _result = ( RESULT ); \ if ( _result != VK_SUCCESS ) \ { \ SDL_LogError( SDL_LOG_CATEGORY_SYSTEM, "" #RESULT " failed with %d at %s:%d", _result, __FILE__, __LINE__ ); \ __debugbreak(); \ exit( _result ); \ } \ } \ while ( false ) #define Take( OBJ ) std::exchange( OBJ, {} )