From 4f0415e338862ffec50c2d47eddea958255b504e Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Thu, 25 Oct 2018 11:24:16 -0400 Subject: Feature/premake linux (#689) * Premake work in progress for linux. * Added dump function. * Remove examples on linux Small warning fix. * * Don't build render-test on linux * Removed work around virtual destructor warning, and just used virtual dtor for simplicity * Git ignore obj directories * Fix premake working on windows. * * Fix sprintf_s functions * Make generates arg parsing more robust * Added FloatIntUnion to avoid type punning/strong aliasing issues, and repeated union definitions. * Work around problems building on linux with getClass claiming a strict aliasing issue. * Fix for targetBlock appearing potentiall used unintialized to gcc. * Linux slang link options -fPIC to make dll. * Add -fPIC to build options on linux. * Add -ldl for linux on slang. * Fixes to try and get premake working with .so on linux. * Make core compile with -fPIC * Try to fix linux linking with --no-as-needed before -ldl * Add rpath back. * Remove render-gl from linux build. * Re-add location for linux. * Don't include except on windows. * Remove unused line to fix warning on osx. * Remove ambiguity on OSX for operator <<. * Fixing ambiguity with operator overloading and Int types for OSX. * Fix ambiguity around UInt and operator * Fix ambiguity of UInt conversion for OSX. * Added UnambiguousInt and UnambiguousUInt to make it easier to work around OSX integer coercion for UInt/Int types. --- tools/gfx/model.cpp | 7 ++++++- tools/gfx/model.h | 1 + tools/gfx/render.h | 6 ++++++ tools/gfx/window.cpp | 1 - tools/gfx/window.h | 4 ++-- 5 files changed, 15 insertions(+), 4 deletions(-) (limited to 'tools/gfx') diff --git a/tools/gfx/model.cpp b/tools/gfx/model.cpp index 62e6ec1fd..ce176727b 100644 --- a/tools/gfx/model.cpp +++ b/tools/gfx/model.cpp @@ -195,6 +195,11 @@ RefPtr loadTextureImage( return texture; } +static std::string makeString(const char* start, const char* end) +{ + return std::string(start, size_t(end - start)); +} + Result ModelLoader::load( char const* inputPath, void** outModel) @@ -208,7 +213,7 @@ Result ModelLoader::load( std::string baseDir; if( auto lastSlash = strrchr(inputPath, '/') ) { - baseDir = std::string(inputPath, lastSlash); + baseDir = makeString(inputPath, lastSlash); } std::string diagnostics; diff --git a/tools/gfx/model.h b/tools/gfx/model.h index b92dfda76..17b16510e 100644 --- a/tools/gfx/model.h +++ b/tools/gfx/model.h @@ -5,6 +5,7 @@ #include "vector-math.h" #include +#include namespace gfx { diff --git a/tools/gfx/render.h b/tools/gfx/render.h index f59a5ef9f..bfbe0f82a 100644 --- a/tools/gfx/render.h +++ b/tools/gfx/render.h @@ -5,6 +5,8 @@ //#include "shader-input-layout.h" +#include + #include "../../slang-com-helper.h" #include "../../source/core/smart-pointer.h" @@ -424,6 +426,10 @@ class TextureResource: public Resource Desc m_desc; }; +// Needed for building on cygwin with gcc +#undef Always +#undef None + enum class ComparisonFunc : uint8_t { Never = 0, diff --git a/tools/gfx/window.cpp b/tools/gfx/window.cpp index 8456e1ead..9e2195141 100644 --- a/tools/gfx/window.cpp +++ b/tools/gfx/window.cpp @@ -1,6 +1,5 @@ // window.cpp #include "window.h" -#pragma once #include diff --git a/tools/gfx/window.h b/tools/gfx/window.h index e154acec3..e6f886f42 100644 --- a/tools/gfx/window.h +++ b/tools/gfx/window.h @@ -5,7 +5,7 @@ namespace gfx { -typedef struct Window Window; +struct Window; enum class KeyCode { @@ -94,7 +94,7 @@ int runApplication( #define GFX_CONSOLE_MAIN(APPLICATION_ENTRY) \ int main(int argc, char** argv) { \ - return gfx::runApplication(&(APPLIATION_ENTRY), argc, argv); \ + return gfx::runApplication(&(APPLICATION_ENTRY), argc, argv); \ } #ifdef _WIN32 -- cgit v1.2.3