41 lines
2.8 KiB
C++
41 lines
2.8 KiB
C++
#pragma once
|
|
|
|
#include <cassert>
|
|
#include <cstdlib>
|
|
#include <utility>
|
|
|
|
#include <SDL3/SDL_log.h>
|
|
|
|
#define DEPRECATE_JULY_2025
|
|
|
|
#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, {} )
|
|
|
|
#define UNREACHABLE G_ASSERT( false )
|