/*
	ZRendererBuild.hpp
	Author: James Russell <jcrussell@762studios.com>
	Created: 5/21/2012

	Purpose:

	Used to generate definitions for the preprocessor using only compiler-set variables
	and include headers necessary to ensure previous project build files are included
	in the correct order.

	License:

	TODO
*/

#pragma once

#ifndef _ZRENDERERBUILD_HPP
#define _ZRENDERERBUILD_HPP

#include "ZBuild.hpp"

#include <ZUtil/ZUtilBuild.hpp>

//Version number constants for ZRenderer
#define ZRENDERER_VERSION_MAJOR		0x01
#define ZRENDERER_VERSION_MINOR		0x00
#define ZRENDERER_VERSION_PATCH		0x0000
#define ZRENDERER_VERSION			(ZRENDERER_VERSION_MAJOR << 24) | (ZRENDERER_VERSION_MINOR << 16) | (ZRENDERER_VERSION_PATCH)

#define ZRENDERER_VERSION_STRING	"1.0.0"

#if ZASSERT_RENDERER_ENABLE

//ZASSERT_RENDERER macro, which will trigger a breakpoint if the condition is not met
//ZASSERT_RENDERER is meant to be used within the ZRenderer project for internal assertion debugging
//ZASSERT should be used when the error condition can be caused by user actions
#define ZASSERT_RENDERER(_condition, _message)		SST_OS_DebugAssert(_condition, _message)

#else	

//ZASSERT_RENDERER is disabled
#define ZASSERT_RENDERER(_condition, _message)		((void)sizeof(_condition), sizeof(_message))

#endif	//ZASSERT_RENDERER_ENABLE

#endif
 
