Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions BasicGameEngine.sln
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CommandHistoryOperation", "
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CommandHistoryOperation1", "CommandHistoryOperation1\CommandHistoryOperation1.vcxproj", "{D1C1B5AB-583B-4D92-817E-580102AF2E21}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DX11Operation", "DX11Operation\DX11Operation.vcxproj", "{482D7C56-57B0-468F-8490-011B0B4BB56D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Expand Down Expand Up @@ -107,13 +109,30 @@ Global
{D1C1B5AB-583B-4D92-817E-580102AF2E21}.Release|x64.Build.0 = Release|x64
{D1C1B5AB-583B-4D92-817E-580102AF2E21}.Release|x86.ActiveCfg = Release|Win32
{D1C1B5AB-583B-4D92-817E-580102AF2E21}.Release|x86.Build.0 = Release|Win32
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Debug|ARM.ActiveCfg = Debug|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Debug|ARM.Build.0 = Debug|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Debug|ARM64.ActiveCfg = Debug|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Debug|ARM64.Build.0 = Debug|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Debug|x64.ActiveCfg = Debug|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Debug|x64.Build.0 = Debug|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Debug|x86.ActiveCfg = Debug|Win32
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Debug|x86.Build.0 = Debug|Win32
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Release|ARM.ActiveCfg = Release|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Release|ARM.Build.0 = Release|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Release|ARM64.ActiveCfg = Release|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Release|ARM64.Build.0 = Release|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Release|x64.ActiveCfg = Release|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Release|x64.Build.0 = Release|x64
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Release|x86.ActiveCfg = Release|Win32
{482D7C56-57B0-468F-8490-011B0B4BB56D}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{9E3D9643-A834-4FDA-A406-52540CCD6226} = {9980BB65-19FB-4941-83BA-74534825FB9D}
{D1C1B5AB-583B-4D92-817E-580102AF2E21} = {9980BB65-19FB-4941-83BA-74534825FB9D}
{482D7C56-57B0-468F-8490-011B0B4BB56D} = {9980BB65-19FB-4941-83BA-74534825FB9D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D3E28ACF-2934-43DE-B490-360214FA35D3}
Expand Down
4 changes: 4 additions & 0 deletions BasicGameEngine/BasicGameEngine.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,13 @@
<ForceConformanceInForLoopScope>false</ForceConformanceInForLoopScope>
<RemoveUnreferencedCodeData>false</RemoveUnreferencedCodeData>
<LanguageStandard_C>stdc17</LanguageStandard_C>
<AdditionalIncludeDirectories>$(WindowsSDK_IncludePath);$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies> User32.lib;Gdi32.lib;Shell32.lib;Advapi32.lib;Ole32.lib;</AdditionalDependencies>
<AdditionalLibraryDirectories>$(DXSDK_DIR)Lib\x86</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
Expand All @@ -143,6 +146,7 @@
<ItemGroup>
<ClInclude Include="include\BasicGameEngine.h" />
<ClInclude Include="framework.h" />
<ClInclude Include="include\DirectXIncludes.h" />
<ClInclude Include="include\InterprocessComm.h" />
<ClInclude Include="include\InterprocessCommMgr.h" />
<ClInclude Include="Resource.h" />
Expand Down
3 changes: 3 additions & 0 deletions BasicGameEngine/BasicGameEngine.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@
<ClInclude Include="include\UserPrivilegeMgr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\DirectXIncludes.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\BasicGameEngine.cpp">
Expand Down
Empty file.
7 changes: 7 additions & 0 deletions BasicGameEngine_UnitTest/BasicGameEngine_UnitTest.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@
<Link>
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>d3d11.lib;dxgi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
Expand Down Expand Up @@ -166,21 +167,27 @@
<ItemGroup>
<ClCompile Include="BasicGameEngine_UnitTest.cpp" />
<ClCompile Include="CommandHistoryOperation_UnitTest.cpp" />
<ClCompile Include="DirextXOperation_UnitTest.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="VideoCard_UnitTest.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="Main.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="VideoCard_UnitTest.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CommandHistoryOperation\CommandHistoryOperation.vcxproj">
<Project>{9e3d9643-a834-4fda-a406-52540ccd6226}</Project>
</ProjectReference>
<ProjectReference Include="..\DX11Operation\DX11Operation.vcxproj">
<Project>{482d7c56-57b0-468f-8490-011b0b4bb56d}</Project>
</ProjectReference>
<ProjectReference Include="..\OpNode\OpNode.vcxproj">
<Project>{bb84b704-82c7-4696-b2b4-b8b5b51f57f7}</Project>
</ProjectReference>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@
<ClCompile Include="CommandHistoryOperation_UnitTest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DirextXOperation_UnitTest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="VideoCard_UnitTest.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h">
Expand All @@ -32,5 +38,8 @@
<ClInclude Include="Main.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="VideoCard_UnitTest.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
62 changes: 62 additions & 0 deletions BasicGameEngine_UnitTest/DirextXOperation_UnitTest.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
// DirectXOperation_UnitTest.cpp
#include "pch.h"
#include "CppUnitTest.h"
#include "../DX11Operation/DirectXOperation.h"
#include <Windows.h> // Include Windows API header for LoadLibrary, FreeLibrary
#include <memory>
#include <iostream>
#include <filesystem>
#include "../OpNode/IOperate.h" // Include IOperate from OpNode project

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace DirectXOperationTests {

// Simple window procedure for a dummy window.
LRESULT CALLBACK DummyWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
return DefWindowProc(hWnd, message, wParam, lParam);
}

// Helper function to create a hidden window.
HWND CreateDummyWindow() {
const wchar_t CLASS_NAME[] = L"DummyWindowClass";

WNDCLASS wc = {};
wc.lpfnWndProc = DummyWndProc;
wc.hInstance = GetModuleHandle(nullptr);
wc.lpszClassName = CLASS_NAME;
RegisterClass(&wc);

HWND hWnd = CreateWindowEx(
0, // Optional window styles.
CLASS_NAME, // Window class
L"Dummy Window", // Window text
WS_OVERLAPPEDWINDOW, // Window style
CW_USEDEFAULT, CW_USEDEFAULT, 800, 600,
nullptr, // Parent window
nullptr, // Menu
GetModuleHandle(nullptr), // Instance handle
nullptr // Additional application data
);

// Hide the window (for unit testing, no need to show it).
ShowWindow(hWnd, SW_HIDE);
return hWnd;
}

TEST_CLASS(DirectXOperationUnitTests)
{
public:
TEST_METHOD(TestDirectXInitialization) {
HWND hWnd = CreateDummyWindow();
DirectXOperation dxOp;
bool result = dxOp.Initialize(hWnd, 800, 600);
Assert::IsTrue(result, L"DirectXOperation should initialize successfully.");

// Optionally call Render to see if the device works.
dxOp.Render();
dxOp.Cleanup();
DestroyWindow(hWnd); // Clean up dummy window.
}
};
}
42 changes: 42 additions & 0 deletions BasicGameEngine_UnitTest/VideoCard_UnitTest.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#include "pch.h"
#include "VideoCard_UnitTest.h"

#include "CppUnitTest.h"
#include <dxgi.h>
#include <wrl/client.h>
#include <string>

using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using Microsoft::WRL::ComPtr;

namespace BasicGameEngine_UnitTests
{
TEST_CLASS(VideoCardTests)
{
public:
TEST_METHOD(TestEnumerateVideoCards)
{
// Create a DXGI factory
ComPtr<IDXGIFactory> factory;
HRESULT hr = CreateDXGIFactory(__uuidof(IDXGIFactory), reinterpret_cast<void**>(factory.GetAddressOf()));
Assert::IsTrue(SUCCEEDED(hr), L"Failed to create DXGIFactory.");

// Enumerate the first adapter (video card)
ComPtr<IDXGIAdapter> adapter;
hr = factory->EnumAdapters(0, &adapter);
Assert::IsTrue(SUCCEEDED(hr), L"No video adapter found.");

// Retrieve the adapter description
DXGI_ADAPTER_DESC adapterDesc = {};
hr = adapter->GetDesc(&adapterDesc);
Assert::IsTrue(SUCCEEDED(hr), L"Failed to get adapter description.");

// Convert the wide string description to a wstring
std::wstring adapterDescription(adapterDesc.Description);
Logger::WriteMessage((L"Video Card: " + adapterDescription).c_str());

// Assert that the description is not empty
Assert::IsFalse(adapterDescription.empty(), L"Adapter description is empty.");
}
};
}
5 changes: 5 additions & 0 deletions BasicGameEngine_UnitTest/VideoCard_UnitTest.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#pragma once
class VideoCard_UnitTest
{
};

Loading
Loading