Browse Source

Reference Counting Template hinzugefügt

kolja 6 years ago
parent
commit
d033d2b1ea
6 changed files with 38 additions and 0 deletions
  1. 1 0
      Framework Linux.vcxproj
  2. 3 0
      Framework Linux.vcxproj.filters
  3. 1 0
      Framework.vcxproj
  4. 3 0
      Framework.vcxproj.filters
  5. 27 0
      ReferenceCounting.h
  6. 3 0
      main.h

+ 1 - 0
Framework Linux.vcxproj

@@ -193,6 +193,7 @@
     <ClInclude Include="Rahmen.h" />
     <ClInclude Include="Random.h" />
     <ClInclude Include="Reader.h" />
+    <ClInclude Include="ReferenceCounting.h" />
     <ClInclude Include="Schrift.h" />
     <ClInclude Include="Scroll.h" />
     <ClInclude Include="Tabelle.h" />

+ 3 - 0
Framework Linux.vcxproj.filters

@@ -249,6 +249,9 @@
     <ClInclude Include="Textur2D.h">
       <Filter>Headerdateien\Framework\Grafik\2D</Filter>
     </ClInclude>
+    <ClInclude Include="ReferenceCounting.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="Prozess.cpp">

+ 1 - 0
Framework.vcxproj

@@ -237,6 +237,7 @@ copy "x64\Release\Framework.dll" "..\..\Spiele Platform\SMP\Fertig\x64\framework
     <ClInclude Include="ObjectRegister.h" />
     <ClInclude Include="Random.h" />
     <ClInclude Include="Reader.h" />
+    <ClInclude Include="ReferenceCounting.h" />
     <ClInclude Include="Render3D.h" />
     <ClInclude Include="Shader.h" />
     <ClInclude Include="Textur.h" />

+ 3 - 0
Framework.vcxproj.filters

@@ -273,6 +273,9 @@
     <ClInclude Include="Textur2D.h">
       <Filter>Headerdateien\Framework\Grafik\2D</Filter>
     </ClInclude>
+    <ClInclude Include="ReferenceCounting.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="Maus.cpp">

+ 27 - 0
ReferenceCounting.h

@@ -0,0 +1,27 @@
+#pragma once
+template< class T >
+class ReferenceCounting : public T
+{
+private:
+    int ref;
+
+public:
+    ReferenceCounting()
+        : T()
+    {
+        ref = 1;
+    }
+
+    T *getThis()
+    {
+        ref++;
+        return this;
+    }
+
+    T *release()
+    {
+        if( !--ref )
+            delete this;
+        return 0;
+    }
+};

+ 3 - 0
main.h

@@ -13,7 +13,10 @@
 #endif
 #define WIN32_LEAN_AND_MEAN
 #include <Windows.h>
+#pragma warning( push )
+#pragma warning( disable : 4091 )
 #include <DbgHelp.h>
+#pragma warning( pop )
 
 #define KSGStart __stdcall