Browse Source

add getFirstElement to XML Editor and getChildIndex to XML Element and fix Maybe type

Kolja Strohm 8 months ago
parent
commit
55079f49d8
12 changed files with 137 additions and 81 deletions
  1. 22 22
      DX12PixelShader.h
  2. 17 17
      DX12VertexShader.h
  3. 2 0
      Either.h
  4. BIN
      Framework Tests/Framwork.dll
  5. 1 0
      Framework.vcxproj
  6. 1 0
      Framework.vcxproj.filters
  7. 24 4
      Maybe.h
  8. 23 23
      UIPixelShader.h
  9. 15 15
      UIVertexShader.h
  10. 15 0
      XML.cpp
  11. 13 0
      XML.h
  12. 4 0
      cpp.hint

+ 22 - 22
DX12PixelShader.h

@@ -92,10 +92,10 @@ ret
 
 const BYTE DX12PixelShaderBytes[] =
 {
-     68,  88,  66,  67, 243, 224, 
-    115, 255, 118,  98, 221, 237, 
-    221, 216, 148, 105, 223, 200, 
-     22, 157,   1,   0,   0,   0, 
+     68,  88,  66,  67, 186, 195, 
+    212, 229, 146, 222, 174, 164, 
+    234,  67,  33,  48, 200,  17, 
+     92, 137,   1,   0,   0,   0, 
     184,  91,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
      36,   2,   0,   0, 188,   2, 
@@ -763,11 +763,11 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0, 148,  46, 
-     49,   1, 189,  63, 201, 100, 
-      1,   0,   0,   0, 118, 105, 
-    139,   9, 241, 213,   2,  78, 
-    159, 220,   1,  97,  45,  55, 
-      9, 178,   0,   0,   0,   0, 
+     49,   1,  21,  78, 209, 100, 
+      1,   0,   0,   0,  78,  96, 
+     67,  15, 180, 144,  32,  73, 
+    148,   1, 227,  20, 191, 252, 
+    237,  74,   0,   0,   0,   0, 
       0,   0,   0,   0,   1,   0, 
       0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -938,10 +938,10 @@ const BYTE DX12PixelShaderBytes[] =
       3,   0, 242,  56,   1,   0, 
      43, 236,   3,   0,  28,  19, 
       2,   0,  65,  36,   1,   0, 
-    236, 179,   1,   0,  16,  48, 
-      1,   0, 125,  10,   2,   0, 
-    125, 181,   2,   0, 142, 222, 
-      0,   0, 193,  33,   3,   0, 
+    236, 179,   1,   0, 148, 153, 
+      2,   0, 125,  10,   2,   0, 
+    125, 181,   2,   0,  14, 184, 
+      3,   0, 193,  33,   3,   0, 
      65, 185,   2,   0, 140, 239, 
       1,   0, 246,  49,   0,   0, 
     213, 255,   0,   0,  46, 248, 
@@ -1788,7 +1788,7 @@ const BYTE DX12PixelShaderBytes[] =
     117, 114, 101,  50,  68,  32, 
     115, 104,  97, 100,  27, 226, 
      48,   1, 128,   0,   0,   0, 
-    134, 146, 136, 253, 156, 196, 
+    142, 187,  83,  62, 106, 201, 
     217,   1,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2348,14 +2348,14 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,  23,   0,   1,   0, 
       5,  16,   0,   0,  14,   0, 
      23,  21,   0,  16,   0,   0, 
-      3,   2, 224, 151,   0,   0, 
+      3,   2, 176, 160,   0,   0, 
     242, 241,  10,   0,  24,  21, 
       8,  16,   0,   0,   1,   0, 
       1,   0,  10,   0,  24,  21, 
       9,  16,   0,   0,   1,   0, 
       0,   2,  14,   0,  23,  21, 
       0,   0,   0,   0,  10,   2, 
-    224, 151,   0,   0, 242, 241, 
+    176, 160,   0,   0, 242, 241, 
      10,   0,  24,  21,  11,  16, 
       0,   0,   1,   0,   1,   0, 
      10,   0,  24,  21,  12,  16, 
@@ -3408,11 +3408,11 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    148,  46,  49,   1, 189,  63, 
-    201, 100,   1,   0,   0,   0, 
-    118, 105, 139,   9, 241, 213, 
-      2,  78, 159, 220,   1,  97, 
-     45,  55,   9, 178, 128,   0, 
+    148,  46,  49,   1,  21,  78, 
+    209, 100,   1,   0,   0,   0, 
+     78,  96,  67,  15, 180, 144, 
+     32,  73, 148,   1, 227,  20, 
+    191, 252, 237,  74, 128,   0, 
       0,   0,  47,  76, 105, 110, 
     107,  73, 110, 102, 111,   0, 
      47, 110,  97, 109, 101, 115, 
@@ -3512,7 +3512,7 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   2,   0,   9,   0, 
     220,   4,   0,   0,   0,   0, 
       0,   0, 156,   1,   0,   0, 
-      1,   0,  35,   0,   0,   0, 
+      1,   0,  34,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0, 109,  97, 
     105, 110,   0, 110, 111, 110, 

+ 17 - 17
DX12VertexShader.h

@@ -131,10 +131,10 @@ ret
 
 const BYTE DX12VertexShaderBytes[] =
 {
-     68,  88,  66,  67, 161, 183, 
-    180,  99, 214, 249, 189, 191, 
-    225, 133,  15, 193, 148, 219, 
-    168,  58,   1,   0,   0,   0, 
+     68,  88,  66,  67, 174,  18, 
+    157, 197, 145,  76, 124, 166, 
+    235, 218, 176, 230,  22, 187, 
+    249, 152,   1,   0,   0,   0, 
     144,  78,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
     124,   2,   0,   0,  52,   3, 
@@ -923,11 +923,11 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    148,  46,  49,   1, 189,  63, 
-    201, 100,   1,   0,   0,   0, 
-    228, 134, 215, 136, 217,  24, 
-    204,  72, 130,  81, 124, 170, 
-    139, 178, 152, 181,   0,   0, 
+    148,  46,  49,   1,  21,  78, 
+    209, 100,   1,   0,   0,   0, 
+     70,  22, 116, 117,  78, 193, 
+    253,  73, 139,  54,  44,  19, 
+    233,  57, 122, 118,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       1,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1103,7 +1103,7 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0, 103, 159,   1,   0, 
     179, 120,   1,   0, 238,  97, 
       2,   0,  90,  28,   0,   0, 
-     86, 189,   2,   0,  53, 174, 
+     66, 104,   0,   0,  53, 174, 
       3,   0, 206,  21,   0,   0, 
     193, 205,   3,   0, 207, 193, 
       1,   0,  62,   3,   3,   0, 
@@ -1607,7 +1607,7 @@ const BYTE DX12VertexShaderBytes[] =
      97, 109, 101, 114,  97,  13, 
      10, 115, 116, 114,  27, 226, 
      48,   1, 128,   0,   0,   0, 
-      7, 173, 159, 253, 156, 196, 
+    182, 179, 106,  62, 106, 201, 
     217,   1,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2125,7 +2125,7 @@ const BYTE DX12VertexShaderBytes[] =
      24,  21,  12,  16,   0,   0, 
       1,   0,   1,   0,  14,   0, 
      23,  21,  13,  16,   0,   0, 
-     36,   2, 208, 186,   0,   0, 
+     36,   2, 240, 202,   0,   0, 
     242, 241,  10,   0,  24,  21, 
      14,  16,   0,   0,   1,   0, 
       0,   2,  18,   0,  22,  21, 
@@ -3057,10 +3057,10 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0, 148,  46,  49,   1, 
-    189,  63, 201, 100,   1,   0, 
-      0,   0, 228, 134, 215, 136, 
-    217,  24, 204,  72, 130,  81, 
-    124, 170, 139, 178, 152, 181, 
+     21,  78, 209, 100,   1,   0, 
+      0,   0,  70,  22, 116, 117, 
+     78, 193, 253,  73, 139,  54, 
+     44,  19, 233,  57, 122, 118, 
     129,   0,   0,   0,  47,  76, 
     105, 110, 107,  73, 110, 102, 
     111,   0,  47, 110,  97, 109, 
@@ -3160,7 +3160,7 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   2,   0, 
       9,   0, 156,   5,   0,   0, 
       0,   0,   0,   0, 236,   2, 
-      0,   0,   1,   0, 149, 186, 
+      0,   0,   1,   0, 187, 202, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
     109,  97, 105, 110,   0, 110, 

+ 2 - 0
Either.h

@@ -47,11 +47,13 @@ namespace Framework
 
         A getA() const
         {
+            assert(a);
             return aValue;
         }
 
         B getB() const
         {
+            assert(!a);
             return bValue;
         }
 

BIN
Framework Tests/Framwork.dll


+ 1 - 0
Framework.vcxproj

@@ -469,6 +469,7 @@ copy "x64\Release\Framework.dll" "..\..\Spiele Platform\SMP\Fertig\x64\framework
   </ItemGroup>
   <ItemGroup>
     <None Include="ClassDiagram.cd" />
+    <None Include="cpp.hint" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">

+ 1 - 0
Framework.vcxproj.filters

@@ -602,5 +602,6 @@
   </ItemGroup>
   <ItemGroup>
     <None Include="ClassDiagram.cd" />
+    <None Include="cpp.hint" />
   </ItemGroup>
 </Project>

+ 24 - 4
Maybe.h

@@ -17,15 +17,19 @@ namespace Framework
             set = 0;
         }
 
+        Maybe(T value)
+            : set(1),
+              value(value){};
+
     public:
         static Maybe<T> of(T value)
         {
-            return {1, value};
+            return Maybe(value);
         }
 
         static Maybe<T> empty()
         {
-            return {0, value};
+            return Maybe();
         }
 
         bool isEmpty() const
@@ -54,10 +58,26 @@ namespace Framework
             if (!set) action(value);
         }
 
+        template<typename R> Maybe<R> map(std::function<R(T)> action)
+        {
+            if (set)
+                return Maybe<R>::of(action(value));
+            else
+                return Maybe<R>::empty();
+        }
+
+        template<typename R> Maybe<R> flatMap(std::function<Maybe<R>(T)> action)
+        {
+            if (set)
+                return action(value);
+            else
+                return Maybe<R>::empty();
+        }
+
         T operator->()
         {
             assert(set);
-            return current->var;
+            return value;
         }
     };
-} // namespace Frmaework
+} // namespace Framework

+ 23 - 23
UIPixelShader.h

@@ -352,10 +352,10 @@ ret
 
 const BYTE UIPixelShader[] =
 {
-     68,  88,  66,  67,  93, 255, 
-    197,  88, 232,  80,   6,   6, 
-    189, 227,  35, 243, 229,  92, 
-    170, 129,   1,   0,   0,   0, 
+     68,  88,  66,  67,  42, 176, 
+    242, 159, 197, 217,  18, 230, 
+     41,   3,  68,  41, 118, 195, 
+     10, 110,   1,   0,   0,   0, 
      12, 134,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
     140,   6,   0,   0,  28,   7, 
@@ -1805,11 +1805,11 @@ const BYTE UIPixelShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0, 148,  46, 
-     49,   1, 189,  63, 201, 100, 
-      1,   0,   0,   0, 117,  15, 
-    144, 158, 165, 173, 239,  68, 
-    170, 155,  43, 165, 221, 235, 
-    238,  28,   0,   0,   0,   0, 
+     49,   1,  21,  78, 209, 100, 
+      1,   0,   0,   0, 177, 167, 
+     49, 139, 114,   1, 195,  77, 
+    144,   2, 243, 212, 101,  38, 
+    130, 182,   0,   0,   0,   0, 
       0,   0,   0,   0,   1,   0, 
       0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1980,10 +1980,10 @@ const BYTE UIPixelShader[] =
       3,   0, 242,  56,   1,   0, 
      43, 236,   3,   0,  28,  19, 
       2,   0,  65,  36,   1,   0, 
-    236, 179,   1,   0,  16,  48, 
-      1,   0, 125,  10,   2,   0, 
-    125, 181,   2,   0, 142, 222, 
-      0,   0, 193,  33,   3,   0, 
+    236, 179,   1,   0, 148, 153, 
+      2,   0, 125,  10,   2,   0, 
+    125, 181,   2,   0,  14, 184, 
+      3,   0, 193,  33,   3,   0, 
      65, 185,   2,   0,   9, 241, 
       2,   0, 146, 230,   3,   0, 
     125, 218,   1,   0, 118,  19, 
@@ -3000,8 +3000,8 @@ const BYTE UIPixelShader[] =
      84, 101, 120, 116, 117, 114, 
     101,  50,  68,  32, 115, 104, 
      97, 100,  27, 226,  48,   1, 
-    128,   0,   0,   0, 140,   3, 
-    178, 253, 156, 196, 217,   1, 
+    128,   0,   0,   0, 246,  32, 
+    125,  62, 106, 201, 217,   1, 
       1,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -4243,14 +4243,14 @@ const BYTE UIPixelShader[] =
       6,  16,   0,   0,  23,   0, 
       1,   0,   5,  16,   0,   0, 
      14,   0,  23,  21,   0,  16, 
-      0,   0,   3,   2, 224, 151, 
+      0,   0,   3,   2, 176, 160, 
       0,   0, 242, 241,  10,   0, 
      24,  21,   8,  16,   0,   0, 
       1,   0,   1,   0,  10,   0, 
      24,  21,   9,  16,   0,   0, 
       1,   0,   0,   2,  14,   0, 
      23,  21,   0,   0,   0,   0, 
-     10,   2, 224, 151,   0,   0, 
+     10,   2, 176, 160,   0,   0, 
     242, 241,  10,   0,  24,  21, 
      11,  16,   0,   0,   1,   0, 
       1,   0,  10,   0,  24,  21, 
@@ -5474,11 +5474,11 @@ const BYTE UIPixelShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    148,  46,  49,   1, 189,  63, 
-    201, 100,   1,   0,   0,   0, 
-    117,  15, 144, 158, 165, 173, 
-    239,  68, 170, 155,  43, 165, 
-    221, 235, 238,  28, 128,   0, 
+    148,  46,  49,   1,  21,  78, 
+    209, 100,   1,   0,   0,   0, 
+    177, 167,  49, 139, 114,   1, 
+    195,  77, 144,   2, 243, 212, 
+    101,  38, 130, 182, 128,   0, 
       0,   0,  47,  76, 105, 110, 
     107,  73, 110, 102, 111,   0, 
      47, 110,  97, 109, 101, 115, 
@@ -5578,7 +5578,7 @@ const BYTE UIPixelShader[] =
       0,   0,   2,   0,   9,   0, 
     204,   8,   0,   0,   0,   0, 
       0,   0, 164,  14,   0,   0, 
-      1,   0, 182,  20,   0,   0, 
+      1,   0, 198,  79,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,  84, 101, 
     120, 116, 117, 114, 101,  80, 

+ 15 - 15
UIVertexShader.h

@@ -121,10 +121,10 @@ ret
 
 const BYTE UIVertexShader[] =
 {
-     68,  88,  66,  67, 118, 103, 
-    183,  80, 236, 159, 252,  16, 
-    243, 254,  47,  68, 109,  61, 
-    193, 228,   1,   0,   0,   0, 
+     68,  88,  66,  67, 134, 100, 
+     11, 134, 106, 140, 123, 142, 
+     45, 234, 237,  92,  46,  20, 
+    203, 191,   1,   0,   0,   0, 
     204,  77,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
      20,   2,   0,   0, 204,   2, 
@@ -881,10 +881,10 @@ const BYTE UIVertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0, 148,  46,  49,   1, 
-    189,  63, 201, 100,   1,   0, 
-      0,   0,  80, 199, 232,  21, 
-    123,  26, 136,  70, 133,   8, 
-    243, 176, 202, 208,  26, 236, 
+     21,  78, 209, 100,   1,   0, 
+      0,   0, 103, 209,  30,  34, 
+     39, 126,  42,  79, 132,  66, 
+    155, 189, 210, 200,   3, 102, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
       1,   0,   0,   0,   0,   0, 
@@ -1564,8 +1564,8 @@ const BYTE UIVertexShader[] =
      13,  10,  47,  47,  32,  84, 
      89,  80,  69,  68,  69,  70, 
      27, 226,  48,   1, 128,   0, 
-      0,   0,  72, 217, 207, 253, 
-    156, 196, 217,   1,   1,   0, 
+      0,   0,  26, 247, 152,  62, 
+    106, 201, 217,   1,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2929,10 +2929,10 @@ const BYTE UIVertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0, 148,  46,  49,   1, 
-    189,  63, 201, 100,   1,   0, 
-      0,   0,  80, 199, 232,  21, 
-    123,  26, 136,  70, 133,   8, 
-    243, 176, 202, 208,  26, 236, 
+     21,  78, 209, 100,   1,   0, 
+      0,   0, 103, 209,  30,  34, 
+     39, 126,  42,  79, 132,  66, 
+    155, 189, 210, 200,   3, 102, 
     129,   0,   0,   0,  47,  76, 
     105, 110, 107,  73, 110, 102, 
     111,   0,  47, 110,  97, 109, 
@@ -3032,7 +3032,7 @@ const BYTE UIVertexShader[] =
       0,   0,   0,   0,   2,   0, 
       9,   0, 104,   5,   0,   0, 
       0,   0,   0,   0, 236,   2, 
-      0,   0,   1,   0, 148, 181, 
+      0,   0,   1,   0, 109, 162, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
      84, 101, 120, 116, 117, 114, 

+ 15 - 0
XML.cpp

@@ -355,6 +355,11 @@ int Element::getChildCount() const
     return children->getEintragAnzahl();
 }
 
+int Framework::XML::Element::getChildIndex(Element* zChild) const
+{
+    return children->indexOf(zChild);
+}
+
 // gibt das i-te child zurück
 Element* Element::getChild(int i) const
 {
@@ -577,6 +582,16 @@ Editor::~Editor()
     elements->release();
 }
 
+Maybe<RCPointer<Element>>
+Framework::XML::Editor::getFirstElement() const
+{
+    if (this->elements->getEintragAnzahl() > 0)
+    {
+        return Maybe<RCPointer<Element>>::of(RCPointer<Element>::of(this->elements->get(0)));
+    }
+    return Maybe<RCPointer<Element>>::empty();
+}
+
 // ändert ein attribut oder fügt eines hinzu (auf allen elementen in der Liste)
 //  attribut: Der Name des Attributes
 //  value: Der Wert des Attributes

+ 13 - 0
XML.h

@@ -4,6 +4,8 @@
 
 #include "Array.h"
 #include "ReferenceCounter.h"
+#include "Maybe.h"
+#include "RCPointer.h"
 
 namespace Framework
 {
@@ -69,6 +71,12 @@ namespace Framework
             DLLEXPORT Text getText() const;
             //! gibt die Anzahl der Childs zurück
             DLLEXPORT int getChildCount() const;
+            /// <summary>
+            /// returns the index of the zChild in the list of children or -1 if zChild is not a child of this element
+            /// </summary>
+            /// <param name="zChild">the child element to search for</param>
+            /// <returns>the index of zChild in the list of children or -1 if zChild is not a child of this element</returns>
+            DLLEXPORT int getChildIndex(Element* zChild) const;
             //! gibt das i-te child zurück
             DLLEXPORT Element* getChild(int i) const;
             //! gibt das i-te child zurück (ohne erhöhten reference Counter)
@@ -135,6 +143,11 @@ namespace Framework
             DLLEXPORT Editor(RCArray<Element>* elements);
             DLLEXPORT Editor(const Editor& e);
             DLLEXPORT ~Editor();
+            /// <summary>
+            /// returns the first element in the list
+            /// </summary>
+            /// <returns> the first element of a list or an empty object if no elements are present</returns>
+            DLLEXPORT Maybe<RCPointer<Element>> getFirstElement() const;
             //! ändert ein attribut oder fügt eines hinzu (auf allen elementen
             //! in der Liste) \param attribut Der Name des Attributes \param
             //! value Der Wert des Attributes

+ 4 - 0
cpp.hint

@@ -0,0 +1,4 @@
+// Hinweisdateien unterstützen die Visual Studio-IDE beim Interpretiertieren von Visual C++-Bezeichnern,
+// z. B. von Namen der Funktionen und Makros.
+// Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=865984
+#define DLLEXPORT __declspec(dllexport)