Skip to content

Commit

Permalink
Add xrManagedApi library project and initial xrCore API.
Browse files Browse the repository at this point in the history
  • Loading branch information
Pavel Kovalenko committed Oct 22, 2014
1 parent eb293db commit 95e886f
Show file tree
Hide file tree
Showing 8 changed files with 279 additions and 0 deletions.
38 changes: 38 additions & 0 deletions src/editors/xrManagedApi/AssemblyInfo.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#include "Pch.hpp"

using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;

//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly:AssemblyTitleAttribute(L"xrManagedApi")];
[assembly:AssemblyDescriptionAttribute(L"")];
[assembly:AssemblyConfigurationAttribute(L"")];
[assembly:AssemblyCompanyAttribute(L"")];
[assembly:AssemblyProductAttribute(L"xrManagedApi")];
[assembly:AssemblyCopyrightAttribute(L"Copyright (c) GSC Game World 2014")];
[assembly:AssemblyTrademarkAttribute(L"")];
[assembly:AssemblyCultureAttribute(L"")];

//
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the value or you can default the Revision and Build Numbers
// by using the '*' as shown below:

[assembly:AssemblyVersionAttribute("1.0.*")];

[assembly:ComVisible(false)];

[assembly:CLSCompliantAttribute(true)];
1 change: 1 addition & 0 deletions src/editors/xrManagedApi/Pch.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "Pch.hpp"
1 change: 1 addition & 0 deletions src/editors/xrManagedApi/Pch.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#pragma once
55 changes: 55 additions & 0 deletions src/editors/xrManagedApi/wrappers/Core.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#include "Pch.hpp"
#include "Core.hpp"
#include "xrCore/xrCore.h"
#include <msclr/marshal_cppstd.h>

namespace XRay
{
namespace ManagedApi
{

Core::Core() { }

static void LogCallbackWrapper(const char* msg)
{
if (!Core::ManagedLogCallback)
return;
String^ tmpMsg = msg ? gcnew String(msg) : nullptr;
Core::ManagedLogCallback(tmpMsg);
}

void Core::Initialize(String^ appName, LogCallback^ logCallback, bool initFs, String^ fsFileName)
{
ManagedLogCallback = logCallback;
std::string appNameC = msclr::interop::marshal_as<std::string>(appName);
if (fsFileName)
{
std::string fsFileNameC = msclr::interop::marshal_as<std::string>(fsFileName);
::Core._initialize(appNameC.c_str(), LogCallbackWrapper, initFs, fsFileNameC.c_str());
}
else
::Core._initialize(appNameC.c_str(), LogCallbackWrapper, initFs, nullptr);
}

void Core::Initialize(String^ appName, LogCallback^ logCallback, bool initFs)
{
Core::Initialize(appName, logCallback, initFs, nullptr);
}

void Core::Initialize(String^ appName, LogCallback^ logCallback)
{
Core::Initialize(appName, logCallback, false, nullptr);
}

void Core::Initialize(String^ appName)
{
Core::Initialize(appName, nullptr, false, nullptr);
}

void Core::Destroy()
{
::Core._destroy();
}

}
}
25 changes: 25 additions & 0 deletions src/editors/xrManagedApi/wrappers/Core.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#pragma once

using namespace System;

namespace XRay
{
namespace ManagedApi
{
public ref class Core
{
public:
delegate void LogCallback(String^ str);
internal:
static LogCallback^ ManagedLogCallback;
private:
Core();
public:
static void Initialize(String^ appName, LogCallback^ logCallback, bool initFs, String^ fsFileName);
static void Initialize(String^ appName, LogCallback^ logCallback, bool initFs);
static void Initialize(String^ appName, LogCallback^ logCallback);
static void Initialize(String^ appName);
static void Destroy();
};
}
}
105 changes: 105 additions & 0 deletions src/editors/xrManagedApi/xrManagedApi.vcxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}</ProjectGuid>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<Keyword>ManagedCProj</Keyword>
<RootNamespace>xrManagedApi</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CLRSupport>true</CLRSupport>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CLRSupport>true</CLRSupport>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(SolutionDir)Common.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(SolutionDir)Common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(xrBinDir)</OutDir>
<IntDir>$(xrIntDir)$(ProjectName)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(xrBinDir)</OutDir>
<IntDir>$(xrIntDir)$(ProjectName)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
<AdditionalIncludeDirectories>.;$(SolutionDir)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>Pch.hpp</PrecompiledHeaderFile>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>xrCore.lib</AdditionalDependencies>
<AdditionalLibraryDirectories>$(xrLibDir)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
<AdditionalIncludeDirectories>.;$(SolutionDir)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>Pch.hpp</PrecompiledHeaderFile>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>xrCore.lib</AdditionalDependencies>
<AdditionalLibraryDirectories>$(xrLibDir)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="Pch.hpp" />
<ClInclude Include="wrappers\Core.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="AssemblyInfo.cpp" />
<ClCompile Include="Pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="wrappers\Core.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
21 changes: 21 additions & 0 deletions src/editors/xrManagedApi/xrManagedApi.vcxproj.filters
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="wrappers">
<UniqueIdentifier>{5701e3e7-534d-4d78-8018-13a0da121c00}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="wrappers\Core.hpp">
<Filter>wrappers</Filter>
</ClInclude>
<ClInclude Include="Pch.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="wrappers\Core.cpp">
<Filter>wrappers</Filter>
</ClCompile>
<ClCompile Include="AssemblyInfo.cpp" />
<ClCompile Include="Pch.cpp" />
</ItemGroup>
</Project>
33 changes: 33 additions & 0 deletions src/engine.sln
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrWeatherEditor", "editors\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "xrPostprocessEditor", "editors\xrPostprocessEditor\xrPostprocessEditor.csproj", "{CB449DB5-9C97-447A-AA25-35EA7712F62C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrManagedApi", "editors\xrManagedApi\xrManagedApi.vcxproj", "{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_Dedicated|Any CPU = Debug_Dedicated|Any CPU
Expand Down Expand Up @@ -1600,6 +1602,36 @@ Global
{CB449DB5-9C97-447A-AA25-35EA7712F62C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{CB449DB5-9C97-447A-AA25-35EA7712F62C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{CB449DB5-9C97-447A-AA25-35EA7712F62C}.Release|Win32.ActiveCfg = Release|Any CPU
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Debug_Dedicated|Any CPU.ActiveCfg = Debug|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Debug_Dedicated|Mixed Platforms.ActiveCfg = Debug|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Debug_Dedicated|Mixed Platforms.Build.0 = Debug|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Debug_Dedicated|Win32.ActiveCfg = Debug|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Debug_Dedicated|Win32.Build.0 = Debug|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Debug|Any CPU.ActiveCfg = Debug|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Debug|Win32.ActiveCfg = Debug|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Debug|Win32.Build.0 = Debug|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Mixed_Dedicated|Any CPU.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Mixed_Dedicated|Mixed Platforms.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Mixed_Dedicated|Mixed Platforms.Build.0 = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Mixed_Dedicated|Win32.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Mixed_Dedicated|Win32.Build.0 = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Mixed|Any CPU.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Mixed|Mixed Platforms.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Mixed|Mixed Platforms.Build.0 = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Mixed|Win32.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Mixed|Win32.Build.0 = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Release_Dedicated|Any CPU.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Release_Dedicated|Mixed Platforms.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Release_Dedicated|Mixed Platforms.Build.0 = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Release_Dedicated|Win32.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Release_Dedicated|Win32.Build.0 = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Release|Any CPU.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Release|Mixed Platforms.Build.0 = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Release|Win32.ActiveCfg = Release|Win32
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -1644,6 +1676,7 @@ Global
{E9DC16A3-D0FA-4924-AF6E-F6FDF3EA0661} = {CB0C814D-FB4E-453B-B7A0-716F4A1EACA4}
{492D3DFE-9068-4E7E-A008-7C2420A651C0} = {CB0C814D-FB4E-453B-B7A0-716F4A1EACA4}
{CB449DB5-9C97-447A-AA25-35EA7712F62C} = {CB0C814D-FB4E-453B-B7A0-716F4A1EACA4}
{55B0E2CA-E27A-47FC-BC92-21ABDC1044F5} = {CB0C814D-FB4E-453B-B7A0-716F4A1EACA4}
EndGlobalSection
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
Expand Down

0 comments on commit 95e886f

Please sign in to comment.