35 lines
2.7 KiB
C++
35 lines
2.7 KiB
C++
#pragma once
|
|
|
|
#include <cassert>
|
|
#include <cstdlib>
|
|
#include <utility>
|
|
|
|
#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, {} )
|