diff --git a/Code/Dokumentation/Danbias Structure.uxf b/Code/Dokumentation/Danbias Structure.uxf
index c24380c9..d52aa795 100644
--- a/Code/Dokumentation/Danbias Structure.uxf
+++ b/Code/Dokumentation/Danbias Structure.uxf
@@ -1,212 +1,197 @@
- 11
+ 7
com.umlet.element.Class
- 847
- 363
- 132
- 33
+ 728
+ 413
+ 91
+ 21
- Graphics
+ Graphics <<module>>
+bg=orange
com.umlet.element.Class
- 561
- 363
- 132
- 33
+ 546
+ 413
+ 84
+ 21
- Sound
+ Sound<<?>>
com.umlet.element.Class
- 671
- 209
- 132
- 33
+ 616
+ 322
+ 84
+ 21
- Physics
+ Physics <<module>>
+bg=orange
com.umlet.element.Class
- 858
- 132
- 121
- 33
+ 735
+ 238
+ 77
+ 21
- Game client
+ Game client <<dll>>
+bg=red
com.umlet.element.Class
- 484
- 209
- 154
- 33
+ 616
+ 287
+ 98
+ 21
- Gamelogic
+ Gamelogic <<dll>>
+bg=red
com.umlet.element.Class
- 506
- 132
- 121
- 33
+ 504
+ 238
+ 84
+ 21
- Game server
+ Game server <<dll>>
+bg=red
com.umlet.element.Class
- 671
- 132
- 132
- 33
+ 616
+ 238
+ 84
+ 21
- Network
+ Network <<module>>
+bg=orange
com.umlet.element.Class
- 704
- 363
- 132
- 33
+ 637
+ 413
+ 84
+ 21
- Input
+ Input<<lib>>
+bg=blue
com.umlet.element.Class
- 495
- 55
- 176
- 44
+ 714
+ 182
+ 98
+ 28
- DanBiasClientLauncher
+ GameLauncher <<exe>>
bg=green
com.umlet.element.Relation
- 880
- 132
- 54
- 252
+ 749
+ 238
+ 34
+ 188
lt=<-
- 33;231;33;209;33;33
+ 21;175;21;161;21;21
com.umlet.element.Relation
- 583
- 132
- 351
- 252
+ 560
+ 238
+ 223
+ 188
lt=<-
- 33;231;33;209;330;209;330;33
+ 21;175;21;161;210;161;210;21
com.umlet.element.Relation
- 528
- 132
- 54
- 98
+ 525
+ 238
+ 146
+ 62
lt=<-
- 33;77;33;33
+ 133;49;133;35;21;35;21;21
com.umlet.element.Relation
- 594
- 110
- 98
- 54
+ 567
+ 224
+ 62
+ 34
lt=<-
- 77;33;33;33
+ 49;21;21;21
com.umlet.element.Relation
- 605
- 187
- 87
- 54
+ 637
+ 287
+ 34
+ 48
lt=<-
- 66;33;33;33
+ 21;35;21;21
com.umlet.element.Relation
- 737
- 132
- 197
- 252
+ 658
+ 238
+ 125
+ 188
lt=<-
- 33;231;33;209;176;209;176;33
+ 21;175;21;161;112;161;112;21
com.umlet.element.Relation
- 770
- 110
- 109
- 54
+ 679
+ 224
+ 69
+ 34
lt=<-
- 33;33;88;33
-
-
- com.umlet.element.Relation
-
- 880
- 66
- 54
- 87
-
- lt=>-
- 33;33;33;66
-
-
- com.umlet.element.Relation
-
- 528
- 66
- 54
- 87
-
- lt=>-
- 33;33;33;66
+ 21;21;56;21
com.umlet.element.Package
- 440
- 22
- 550
- 396
+ 455
+ 161
+ 371
+ 287
GameEngine
@@ -214,21 +199,21 @@ bg=green
com.umlet.element.Relation
- 880
- 363
- 54
- 164
+ 749
+ 413
+ 34
+ 104
lt=<<.
- 33;33;33;143
+ 21;21;21;91
com.umlet.element.Package
- 891
- 506
- 319
- 220
+ 756
+ 504
+ 203
+ 140
Graphics
@@ -236,10 +221,10 @@ bg=green
com.umlet.element.Class
- 902
- 539
- 297
- 176
+ 763
+ 525
+ 189
+ 112
<<interface>>
OysterGfx
@@ -256,10 +241,10 @@ Release(resource :Model*) :void
com.umlet.element.Package
- 561
- 506
- 308
- 242
+ 546
+ 504
+ 196
+ 154
Input
@@ -267,21 +252,21 @@ Release(resource :Model*) :void
com.umlet.element.Relation
- 649
- 363
- 142
- 175
+ 602
+ 413
+ 90
+ 111
lt=<<.
- 121;33;121;154;33;154
+ 77;21;77;98;21;98
com.umlet.element.Class
- 572
- 539
- 286
- 198
+ 553
+ 525
+ 182
+ 126
<<interface>>
RawInput
@@ -299,32 +284,33 @@ Enable(Enable :bool) :void
com.umlet.element.Class
- 451
- 363
- 99
- 33
+ 462
+ 413
+ 77
+ 21
- Window API
+ Window API<<lib>>
+bg=blue
com.umlet.element.Relation
- 462
- 132
- 472
- 252
+ 483
+ 238
+ 300
+ 188
lt=<-
- 33;231;33;209;451;209;451;33
+ 21;175;21;161;287;161;287;21
com.umlet.element.Package
- 176
- 506
- 374
- 242
+ 301
+ 504
+ 238
+ 154
Sound
@@ -332,10 +318,10 @@ Enable(Enable :bool) :void
com.umlet.element.Class
- 187
- 539
- 352
- 121
+ 308
+ 525
+ 224
+ 77
<<interface>>
SoundWrapper
@@ -349,10 +335,10 @@ Release(Resource :ResourceHandle*) :void
com.umlet.element.Class
- 187
- 693
- 352
- 44
+ 308
+ 623
+ 224
+ 28
<<API>>
--
@@ -362,79 +348,152 @@ FMOD
com.umlet.element.Relation
- 330
- 627
- 54
- 87
+ 399
+ 581
+ 34
+ 55
lt=<<.
- 33;66;33;33
+ 21;42;21;21
com.umlet.element.Relation
- 286
- 363
- 362
- 175
+ 371
+ 413
+ 230
+ 111
lt=<<.
- 341;33;341;88;253;88;253;154;33;154
+ 217;21;217;56;161;56;161;98;21;98
com.umlet.element.Class
- 781
- 55
- 198
- 44
+ 476
+ 329
+ 84
+ 28
- DanBiasServerLauncher
+ Math <<lib>>
+--
+/Is used globaly/
+bg=blue
+
+
+
+ com.umlet.element.Relation
+
+ 539
+ 238
+ 237
+ 125
+
+ lt=<-
+ 21;112;224;112;224;21
+
+
+ com.umlet.element.Class
+
+ 476
+ 294
+ 77
+ 28
+
+ Misc <<lib>>
+--
+/Is used globaly/
+bg=blue
+
+
+
+ com.umlet.element.Relation
+
+ 539
+ 273
+ 90
+ 76
+
+ lt=<-
+ 21;63;56;63;56;21;77;21
+
+
+ UMLClass
+
+ 105
+ 168
+ 245
+ 140
+
+ /*HISTORY*/
+--
+10/2-2014
+Renamed DanBiasClientLauncher -> GameLauncher
+Removed DanBiasServerLauncher - connected to GameClient
+Added missing cconnections
+Specified what type of box and added a colour
+--
+elementstyle=wordwrap
+bg=gray
+
+
+
+
+ com.umlet.element.Relation
+
+ 749
+ 189
+ 34
+ 62
+
+ lt=<-
+ 21;49;21;21
+
+
+ com.umlet.element.Class
+
+ 504
+ 189
+ 91
+ 28
+
+ ServerUI <<exe>>
+--
+/template for future/
bg=green
- com.umlet.element.Class
+ com.umlet.element.Relation
- 671
- 253
- 132
- 33
+ 525
+ 196
+ 34
+ 55
- Math
-
+ lt=<-
+ 21;42;21;21
com.umlet.element.Relation
- 770
- 132
- 153
- 164
+ 539
+ 308
+ 90
+ 48
lt=<-
- 33;143;132;143;132;33
-
-
- com.umlet.element.Class
-
- 682
- 297
- 99
- 33
-
- Misc
-
+ 21;35;63;35;63;21;77;21
com.umlet.element.Relation
- 605
- 198
- 87
- 98
+ 532
+ 273
+ 97
+ 41
lt=<-
- 66;77;44;77;44;33;33;33
+ 21;28;56;28;56;21;84;21
diff --git a/Code/Dokumentation/GameServer.uxf b/Code/Dokumentation/GameServer.uxf
index 735a2592..890e2cbb 100644
--- a/Code/Dokumentation/GameServer.uxf
+++ b/Code/Dokumentation/GameServer.uxf
@@ -1,13 +1,13 @@
-
- 10
+
+ 8
UMLClass
- 610
- 340
- 100
- 30
+ 632
+ 344
+ 104
+ 24
GameLobby
@@ -16,137 +16,100 @@
UMLClass
- 580
- 480
- 160
- 80
+ 624
+ 416
+ 128
+ 48
GameSession
--
/One instance of a game/
-/including x number of/
-/players./
+/including n players./
com.umlet.element.Relation
- 620
- 340
- 60
- 160
+ 664
+ 344
+ 40
+ 88
lt=->>>>
- 30;140;40;30
+ 24;72;24;24
com.umlet.element.Relation
- 710
- 480
- 100
- 50
+ 664
+ 440
+ 40
+ 104
lt=>>>>-
- 80;30;30;30
+ 24;88;24;24
UMLClass
- 600
- 180
- 120
- 120
+ 40
+ 120
+ 368
+ 344
- GameServer
+ GameServerAPI <<singleton>>
+--
+{innerclass
++ServerInitDesc<<struct>>
+--
+serverName :char pointer
+listenPort :int
+bool broadcast :bool
+ServerInitDesc() :void
+innerclass}
+{innerclass
++GameServerInfo<<struct>>
+--
+listenPort :unsigned int
+serverIp :const char pointer
+innerclass}
+
++static DanBiasServerReturn ServerInitiate(const ServerInitDesc& desc);
++static ServerStart() :void
++static ServerStop() :void
++static ServerUpdate() :void
++static ServerGetInfo() :GameServerInfo
++static ServerIsRunning() :bool
++static GameSetMapId( val :const int& ) :void
++static GameSetMaxClients( val :const int& ) :void
++static GameSetGameMode(val :const int&) :void
++static GameSetGameTime(val :const int&) :void
++static GameGetMapId() :int
++static GameGetMaxClients() :int
++static GameGetGameMode() :int
++static GameGetGameTime() :int
++static GameGetGameName() :const char pointer
++static GameStart() :bool
com.umlet.element.Relation
- 630
- 270
- 50
- 90
-
- lt=>>>>-
- 30;70;30;30
-
-
- UMLClass
-
- 590
- 100
- 130
+ 384
+ 328
+ 264
40
- <<wrapper>>
-DanBiasServerAPI
-
-
-
- com.umlet.element.Relation
-
- 630
- 110
- 50
- 90
-
- lt=>>>>-
-
- 30;70;30;30
-
-
- UMLClass
-
- 1060
- 330
- 120
- 50
-
- NetworkSession
-
-
-
- com.umlet.element.Relation
-
- 690
- 220
- 390
- 50
-
- lt=-<<<<
- 30;30;370;30
-
-
- com.umlet.element.Relation
-
- 680
- 320
- 400
- 50
-
- lt=->>>>>
- 30;30;380;30
-
-
- com.umlet.element.Relation
-
- 690
- 340
- 390
- 160
-
- lt=->>>>>
- 30;140;40;40;370;30
+ lt=>>>>-
+ 248;24;24;24
com.umlet.element.Package
- 460
- 640
- 120
- 50
+ 440
+ 424
+ 96
+ 40
GameLogicAPI
bg=blue
@@ -155,21 +118,21 @@ bg=blue
com.umlet.element.Relation
- 370
- 530
- 350
- 290
+ 512
+ 424
+ 128
+ 40
lt=<<.
- 90;150;30;270;330;240;240;30
+ 24;24;112;24
UMLClass
- 790
- 500
- 100
- 30
+ 624
+ 528
+ 144
+ 24
GameClient
@@ -177,21 +140,21 @@ bg=blue
com.umlet.element.Relation
- 670
- 530
- 150
- 180
+ 520
+ 416
+ 120
+ 104
lt=<<.
- 130;160;30;30
+ 24;88;64;88;64;24;104;24
com.umlet.element.Package
- 800
- 670
- 120
- 40
+ 448
+ 480
+ 96
+ 48
GameProtocols
bg=#aaaaa
@@ -200,10 +163,10 @@ bg=#aaaaa
com.umlet.element.Package
- 1040
- 200
- 160
- 190
+ 720
+ 160
+ 152
+ 24
NetworkAPI
bg=#a21aff
@@ -212,56 +175,84 @@ bg=#a21aff
UMLClass
- 1060
- 280
- 120
- 40
+ 40
+ 24
+ 320
+ 64
- NetworkClient
-
-
-
- UMLClass
-
- 1060
- 230
- 120
- 40
-
- NetworkServer
+ /*HISTORY*/
+--
+10/2-2014
+Restructured old
+--
+elementstyle=wordwrap
+bg=gray
com.umlet.element.Relation
- 690
- 240
- 390
- 80
+ 720
+ 160
+ 40
+ 272
- lt=->
- 30;30;200;30;200;60;370;60
+ lt=<<.
+ 24;24;24;256
com.umlet.element.Relation
- 690
- 260
- 390
- 100
+ 704
+ 160
+ 40
+ 200
- lt=-<<<<
- 30;30;180;30;180;80;370;80
+ lt=<<.
+ 24;24;24;184
com.umlet.element.Relation
- 860
- 270
- 380
- 260
+ 384
+ 152
+ 352
+ 40
- lt=>>>-
- 320;30;360;30;360;230;30;240
+ lt=<<.
+ 336;24;24;24
+
+
+ com.umlet.element.Relation
+
+ 736
+ 160
+ 40
+ 384
+
+ lt=<<.
+ 24;24;24;368
+
+
+ com.umlet.element.Relation
+
+ 520
+ 480
+ 136
+ 64
+
+ lt=<<.
+ 24;24;120;24;120;48
+
+
+ com.umlet.element.Relation
+
+ 512
+ 432
+ 160
+ 112
+
+ lt=<<.
+ 24;24;72;24;72;72;144;72;144;96
diff --git a/Code/Dokumentation/Resource.uxf b/Code/Dokumentation/Resource.uxf
index c62ae895..1258c9af 100644
--- a/Code/Dokumentation/Resource.uxf
+++ b/Code/Dokumentation/Resource.uxf
@@ -1,13 +1,13 @@
-
- 16
+
+ 6
com.umlet.element.Class
- 560
- 80
- 176
- 80
+ 198
+ 300
+ 66
+ 30
<<interface>>
OysterResource
@@ -16,23 +16,23 @@ OysterResource
com.umlet.element.Relation
- 528
- 112
- 206
- 160
+ 186
+ 312
+ 76
+ 60
lt=>>
implements
- 112;128;112;48
+ 42;48;42;18
com.umlet.element.Actor
- 352
- 240
- 128
- 192
+ 120
+ 360
+ 48
+ 72
Dev
@@ -40,22 +40,22 @@ implements
com.umlet.element.Relation
- 320
- 32
- 272
- 240
+ 108
+ 282
+ 102
+ 90
lt=<.
interacts>
- 240;80;96;80;96;208
+ 90;30;36;30;36;78
com.umlet.element.Class
- 576
- 576
- 160
- 32
+ 204
+ 486
+ 60
+ 12
CustomLoader
@@ -63,10 +63,10 @@ interacts>
com.umlet.element.Class
- 576
- 528
- 160
- 32
+ 204
+ 468
+ 60
+ 12
ByteLoader
@@ -75,33 +75,33 @@ ByteLoader
com.umlet.element.Relation
- 464
- 384
- 144
- 192
+ 162
+ 414
+ 54
+ 72
lt=<<-
- 80;48;48;48;48;160;112;160
+ 30;18;18;18;18;60;42;60
com.umlet.element.Relation
- 368
- 384
- 266
- 240
+ 126
+ 414
+ 98
+ 90
lt=<<-
implements partly
- 176;48;144;48;144;208;208;208
+ 66;18;54;18;54;78;78;78
UMLClass
- 544
- 240
- 208
- 128
+ 192
+ 360
+ 78
+ 48
--
<<interface>>
@@ -115,10 +115,10 @@ halign=center
UMLClass
- 544
- 400
- 208
- 80
+ 192
+ 420
+ 78
+ 30
OResource
@@ -130,13 +130,171 @@ halign=center
com.umlet.element.Relation
- 688
- 256
- 196
- 224
+ 252
+ 366
+ 66
+ 84
lt=>>>>
manages>
- 64;192;112;192;112;48;64;48
+ 18;72;36;72;36;18;18;18
+
+
+ UMLClass
+
+ 108
+ 282
+ 240
+ 234
+
+ old
+bg=gray
+
+
+
+ UMLClass
+
+ 402
+ 342
+ 576
+ 204
+
+ ResourceManager
+--
++ ResourceManager() :void
++ ~ResourceManager() :void
++ HBYTEARRAY LoadBytes(const wchar_t filename[], ResourceType type, int customId = -1, bool force = false)
++ HRESOURCE LoadResource(const wchar_t filename[], LoadFunction loadFnc = 0, UnloadFunction unloadFnc = 0, int customId = -1, bool force = false)
++ HRESOURCE ReloadResource(const wchar_t filename[])
++ HRESOURCE ReloadResource(HRESOURCE& resource)
++ void Clean()
++ void ReleaseResource(const HRESOURCE& resource)
++ void ReleaseResource(const wchar_t filename[])
++ void SetResourceId(const HRESOURCE& resource, unsigned int id)
++ void SetResourceId(const wchar_t filename[], unsigned int id)
++ ResourceType GetResourceType(const HRESOURCE& resource)
++ ResourceType GetResourceType (const wchar_t filename[])
++ const wchar_t* GetResourceFilename(const HRESOURCE& resource);
++ HRESOURCE GetResourceHandle(const wchar_t filename[])
++ int GetResourceId(const HRESOURCE& resource);
++ int GetResourceId(const wchar_t filename[]);
+--
+- ResourceManager(const ResourceManager& obj);
+- const ResourceManager& operator=(const ResourceManager&);
+- std::map<std::wstring, ResourceData*> resources;
+
+
+
+ UMLClass
+
+ 390
+ 198
+ 600
+ 360
+
+ Oyster <<namespace>>
+--
+
+
+
+
+ UMLClass
+
+ 396
+ 222
+ 588
+ 330
+
+ Resource <<namespace>>
+--
+
+
+
+
+ UMLClass
+
+ 534
+ 282
+ 126
+ 18
+
+ HRESOURCE: void* <<typedef>>
+
+
+
+ UMLClass
+
+ 534
+ 300
+ 126
+ 18
+
+ HBYTE: char <<typedef>>
+
+
+
+ UMLClass
+
+ 534
+ 318
+ 126
+ 18
+
+ HBYTEARRAY: char* <<typedef>>
+
+
+
+ UMLClass
+
+ 534
+ 246
+ 264
+ 18
+
+ UnloadFunction :void(*UnloadFunction)(void* loadedData) <<typedef>>
+
+
+
+ UMLClass
+
+ 534
+ 264
+ 288
+ 18
+
+ LoadFunction :void*(*LoadFunction)(const wchar_t filename[]) <<typedef>>
+
+
+
+ UMLClass
+
+ 402
+ 246
+ 126
+ 90
+
+ ResourceType <<enum>>
+--
+ResourceType_Byte_Raw
+ResourceType_Byte_ANSI
+ResourceType_Byte_UTF8
+ResourceType_Byte_UNICODE
+ResourceType_Byte_UTF16LE
+ResourceType_CUSTOM
+ResourceType_INVALID
+
+
+
+
+ UMLClass
+
+ 378
+ 174
+ 630
+ 396
+
+ New
+bg=green
+
diff --git a/Code/Game/DanBiasGame/GameClientState/C_Object.cpp b/Code/Game/DanBiasGame/GameClientState/C_Object.cpp
index c5078224..3f9e08c1 100644
--- a/Code/Game/DanBiasGame/GameClientState/C_Object.cpp
+++ b/Code/Game/DanBiasGame/GameClientState/C_Object.cpp
@@ -79,7 +79,7 @@ int C_Object::GetId() const
}
void C_Object::Render()
{
- Oyster::Graphics::API::RenderModel(*(model));
+ Oyster::Graphics::API::RenderModel(model);
}
void C_Object::Release()
{
diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.cpp b/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.cpp
index e654348f..961ab379 100644
--- a/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.cpp
+++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.cpp
@@ -14,4 +14,4 @@ C_DynamicObj::~C_DynamicObj(void)
void C_DynamicObj::Init(ModelInitData modelInit)
{
C_Object::Init(modelInit);
-}
+}
\ No newline at end of file
diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.h b/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.h
index f73514da..ecb874d1 100644
--- a/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.h
+++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.h
@@ -14,4 +14,4 @@ public:
void Init(ModelInitData modelInit);
};};};
-#endif
+#endif
\ No newline at end of file
diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.cpp b/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.cpp
index 02cc58fc..d30fcf24 100644
--- a/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.cpp
+++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.cpp
@@ -16,4 +16,4 @@ C_Player::~C_Player(void)
void C_Player::Init(ModelInitData modelInit)
{
C_Object::Init(modelInit);
-}
+}
\ No newline at end of file
diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.h b/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.h
index 65a7e498..9d7c3de0 100644
--- a/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.h
+++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.h
@@ -15,4 +15,3 @@ public:
};};};
#endif
-
diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.cpp b/Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.cpp
index 9b13c460..a61768e4 100644
--- a/Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.cpp
+++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.cpp
@@ -1,4 +1,3 @@
-
#include "C_StaticObj.h"
#include "DllInterfaces/GFXAPI.h"
using namespace DanBias::Client;
diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.cpp b/Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.cpp
index 570fa22f..5ed3bc36 100644
--- a/Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.cpp
+++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.cpp
@@ -13,4 +13,4 @@ C_UIobject::~C_UIobject(void)
void C_UIobject::Init(ModelInitData modelInit)
{
C_Object::Init(modelInit);
-}
+}
\ No newline at end of file
diff --git a/Code/Game/DanBiasGame/GameClientState/GameState.cpp b/Code/Game/DanBiasGame/GameClientState/GameState.cpp
index 4bfeceee..2a9d6746 100644
--- a/Code/Game/DanBiasGame/GameClientState/GameState.cpp
+++ b/Code/Game/DanBiasGame/GameClientState/GameState.cpp
@@ -50,34 +50,34 @@ bool GameState::Init(Oyster::Network::NetworkClient* nwClient)
GameState::gameStateState GameState::LoadGame()
{
Oyster::Graphics::Definitions::Pointlight plight;
- plight.Pos = Float3(315, 0 ,5);
- plight.Color = Float3(0.9f,0.7f,0.2f);
- plight.Radius = 100;
+ plight.Pos = Oyster::Math::Float3(315.0f, 0.0f ,5.0f);
+ plight.Color = Oyster::Math::Float3(0.9f,0.7f,0.2f);
+ plight.Radius = 100.0f;
plight.Bright = 0.9f;
Oyster::Graphics::API::AddLight(plight);
- plight.Pos = Float3(10,350,5);
- plight.Color = Float3(0.9f,0.7f,0.3f);
- plight.Radius = 200;
+ plight.Pos = Oyster::Math::Float3(10.0f,350.0f,5.0f);
+ plight.Color = Oyster::Math::Float3(0.9f,0.7f,0.3f);
+ plight.Radius = 200.0f;
plight.Bright = 0.7f;
Oyster::Graphics::API::AddLight(plight);
- plight.Pos = Float3(350,350,5);
- plight.Color = Float3(0.9f,0.7f,0.3f);
- plight.Radius = 200;
+ plight.Pos = Oyster::Math::Float3(350.0f,350.0f,5.0f);
+ plight.Color = Oyster::Math::Float3(0.9f,0.7f,0.3f);
+ plight.Radius = 200.0f;
plight.Bright = 0.7f;
Oyster::Graphics::API::AddLight(plight);
- plight.Pos = Float3(10,350,350);
- plight.Color = Float3(0.9f,0.7f,0.3f);
- plight.Radius = 200;
+ plight.Pos = Oyster::Math::Float3(10.0f,350.0f,350.0f);
+ plight.Color = Oyster::Math::Float3(0.9f,0.7f,0.3f);
+ plight.Radius = 200.0f;
plight.Bright = 0.7f;
Oyster::Graphics::API::AddLight(plight);
- plight.Pos = Float3(10,-15,5);
- plight.Color = Float3(0,0,1);
- plight.Radius = 50;
- plight.Bright = 2;
+ plight.Pos = Oyster::Math::Float3(10.0f,-15.0f,5.0f);
+ plight.Color = Oyster::Math::Float3(0.0f,0.0f,1.0f);
+ plight.Radius = 50.0f;
+ plight.Bright = 2.0f;
Oyster::Graphics::API::AddLight(plight);
- // use level loader
- //LoadModels("3bana.bias");
+ LoadModels();
+ InitCamera(Oyster::Math::Float3(0.0f,0.0f,20.0f));
// hardcoded objects
LoadModels();
Float3 startPos = Float3(0,0,20.0f);
diff --git a/Code/Misc/Misc.vcxproj b/Code/Misc/Misc.vcxproj
index 593de858..7cdab4af 100644
--- a/Code/Misc/Misc.vcxproj
+++ b/Code/Misc/Misc.vcxproj
@@ -149,10 +149,30 @@
-
-
-
-
+
+ false
+ false
+ false
+ false
+
+
+ false
+ false
+ false
+ false
+
+
+ false
+ false
+ false
+ false
+
+
+ false
+ false
+ false
+ false
+
false
false
@@ -179,8 +199,18 @@
-
-
+
+ false
+ false
+ false
+ false
+
+
+ false
+ false
+ false
+ false
+
false
false
diff --git a/Code/Misc/Resource/ResourceManager.h b/Code/Misc/Resource/ResourceManager.h
index 4c90966e..d5684538 100644
--- a/Code/Misc/Resource/ResourceManager.h
+++ b/Code/Misc/Resource/ResourceManager.h
@@ -13,6 +13,7 @@ namespace Oyster
typedef void* HRESOURCE;
typedef char HBYTE;
typedef HBYTE* HBYTEARRAY;
+
/** Typedef on a fuction required for custom unloading */
typedef void(*UnloadFunction)(void* loadedData);
diff --git a/Code/OysterGraphics/Core/Buffer.cpp b/Code/OysterGraphics/Core/Buffer.cpp
index d6994554..6cef2b17 100644
--- a/Code/OysterGraphics/Core/Buffer.cpp
+++ b/Code/OysterGraphics/Core/Buffer.cpp
@@ -155,6 +155,10 @@ HRESULT Core::Buffer::Init(const BUFFER_INIT_DESC& initDesc)
{
//MessageBox(NULL, L"Unable to create buffer.", L"Slenda Error", MB_ICONERROR | MB_OK);
}
+ else
+ {
+ Core::UsedMem += bufferDesc.ByteWidth;
+ }
return hr;
}
diff --git a/Code/OysterGraphics/Core/Core.cpp b/Code/OysterGraphics/Core/Core.cpp
index f2392f4c..8cb4c5e0 100644
--- a/Code/OysterGraphics/Core/Core.cpp
+++ b/Code/OysterGraphics/Core/Core.cpp
@@ -33,4 +33,6 @@ Oyster::Math::Float2 Core::resolution = Oyster::Math::Float2::null;
ID3D11ShaderResourceView* Core::srvNULL[16] = {0};
ID3D11RenderTargetView* Core::rtvNULL[8] = {0};
-ID3D11UnorderedAccessView* Core::uavNULL[8] = {0};
\ No newline at end of file
+ID3D11UnorderedAccessView* Core::uavNULL[8] = {0};
+
+int Core::UsedMem = 0;
diff --git a/Code/OysterGraphics/Core/Core.h b/Code/OysterGraphics/Core/Core.h
index 050d54c5..eb420c04 100644
--- a/Code/OysterGraphics/Core/Core.h
+++ b/Code/OysterGraphics/Core/Core.h
@@ -46,6 +46,8 @@ namespace Oyster
static ID3D11RenderTargetView* rtvNULL[8];
static ID3D11UnorderedAccessView* uavNULL[8];
+ static int UsedMem;
+
class Buffer
{
public:
diff --git a/Code/OysterGraphics/Core/Init.cpp b/Code/OysterGraphics/Core/Init.cpp
index 05a91a59..47731dbf 100644
--- a/Code/OysterGraphics/Core/Init.cpp
+++ b/Code/OysterGraphics/Core/Init.cpp
@@ -33,7 +33,7 @@ namespace Oyster
createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
- createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
+ //createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
D3D_FEATURE_LEVEL featureLevelsToTry[] =
{
@@ -110,6 +110,7 @@ namespace Oyster
if(Core::swapChain)
{
Core::swapChain->Release();
+ Core::UsedMem -= desc.BufferDesc.Height * desc.BufferDesc.Width * 16;
delete Core::swapChain;
}
@@ -167,7 +168,7 @@ namespace Oyster
}
dxgiFactory->Release();
-
+ Core::UsedMem += desc.BufferDesc.Height * desc.BufferDesc.Width * 16;
return Init::Success;
}
@@ -187,6 +188,7 @@ namespace Oyster
if(Core::depthStencil)
{
Core::depthStencil->Release();
+ Core::UsedMem -= desc.Height * desc.Width * 4;
delete Core::depthStencil;
}
@@ -214,6 +216,7 @@ namespace Oyster
{
return Init::Fail;
}
+ Core::UsedMem += desc.Height * desc.Width * 4;
D3D11_DEPTH_STENCIL_VIEW_DESC dsvDesc;
dsvDesc.Format = DXGI_FORMAT_D32_FLOAT;
dsvDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D;
@@ -382,6 +385,9 @@ namespace Oyster
if(FAILED(Core::device->CreateTexture2D(&texDesc,NULL,&tex)))
return State::Fail;
+
+ Core::UsedMem += texDesc.Height*texDesc.Width*16;
+
if(rtv)
{
D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
diff --git a/Code/OysterGraphics/Definitions/GraphicalDefinition.h b/Code/OysterGraphics/Definitions/GraphicalDefinition.h
index d84f7506..7c0d76d7 100644
--- a/Code/OysterGraphics/Definitions/GraphicalDefinition.h
+++ b/Code/OysterGraphics/Definitions/GraphicalDefinition.h
@@ -18,6 +18,8 @@ namespace Oyster
{
Math::Matrix WV;
Math::Matrix WVP;
+ int Animated;
+ Math::Float3 Pad;
};
struct FinalVertex
@@ -51,11 +53,19 @@ namespace Oyster
struct AnimationData
{
- Math::Float4x4 animatedData[100];
- int Animated;
- Math::Float3 Pad;
+ Math::Float4x4 AnimatedData[100];
};
+ struct GuiData
+ {
+ Math::Matrix Translation;
+ };
+
+ struct PostData
+ {
+ int x;
+ int y;
+ };
}
}
}
\ No newline at end of file
diff --git a/Code/OysterGraphics/DllInterfaces/GFXAPI.cpp b/Code/OysterGraphics/DllInterfaces/GFXAPI.cpp
index 2d9c3dc6..5a92f0de 100644
--- a/Code/OysterGraphics/DllInterfaces/GFXAPI.cpp
+++ b/Code/OysterGraphics/DllInterfaces/GFXAPI.cpp
@@ -1,13 +1,12 @@
#include "GFXAPI.h"
#include "../Core/Core.h"
-#include "../Render/Resources/Debug.h"
-#include "../Render/Resources/Deffered.h"
-#include "../Render/Rendering/Render.h"
+#include "../Render/Resources.h"
+#include "../Render/DefaultRenderer.h"
#include "../FileLoader/ObjReader.h"
-//#include "../../Misc/Resource/OysterResource.h"
#include "../../Misc/Resource/ResourceManager.h"
#include "../FileLoader/GeneralLoader.h"
#include "../Model/ModelInfo.h"
+#include "../Render/GuiRenderer.h"
#include
namespace Oyster
@@ -19,6 +18,7 @@ namespace Oyster
Math::Float4x4 View;
Math::Float4x4 Projection;
std::vector Lights;
+ float deltaTime;
}
API::State API::Init(HWND Window, bool MSAA_Quality, bool Fullscreen, Math::Float2 resulotion)
@@ -29,18 +29,20 @@ namespace Oyster
{
return API::Fail;
}
- Render::Resources::Deffered::Init();
+ Render::Resources::Init();
Render::Preparations::Basic::SetViewPort();
+ Render::DefaultRenderer::cube = API::CreateModel(L"box.dan");
+ Render::DefaultRenderer::cube2 = API::CreateModel(L"box2.dan");
return API::Sucsess;
}
- void API::SetProjection(Math::Float4x4& projection)
+ void API::SetProjection(const Math::Float4x4& projection)
{
Projection = projection;
}
- void API::SetView(Math::Float4x4& view)
+ void API::SetView(const Math::Float4x4& view)
{
View = view;
}
@@ -49,27 +51,27 @@ namespace Oyster
{
if(Lights.size())
{
- Render::Rendering::Basic::NewFrame(View, Projection, &Lights[0], (int)Lights.size());
+ Render::DefaultRenderer::NewFrame(View, Projection, Lights[0], (int)Lights.size());
}
else
{
- Render::Rendering::Basic::NewFrame(View, Projection, NULL, 0);
+ Render::DefaultRenderer::NewFrame(View, Projection, Definitions::Pointlight(), 0);
}
}
void API::RenderScene(Model::Model models[], int count)
{
- Render::Rendering::Basic::RenderScene(models,count, View, Projection);
+ Render::DefaultRenderer::RenderScene(models,count, View, Projection, deltaTime);
}
- void API::RenderModel(Model::Model& m)
+ void API::RenderModel(Model::Model* m)
{
- Render::Rendering::Basic::RenderScene(&m,1, View, Projection);
+ Render::DefaultRenderer::RenderScene(m,1, View, Projection, deltaTime);
}
void API::EndFrame()
{
- Render::Rendering::Basic::EndFrame();
+ Render::DefaultRenderer::EndFrame();
}
API::State API::SetOptions(API::Option option)
@@ -85,7 +87,7 @@ namespace Oyster
Model::Model* m = new Model::Model();
m->WorldMatrix = Oyster::Math::Float4x4::identity;
m->Visible = true;
- m->AnimationPlaying = -1;
+ m->Animation.AnimationPlaying = NULL;
m->info = (Model::ModelInfo*)Core::loader.LoadResource((Core::modelPath + filename).c_str(),Oyster::Graphics::Loading::LoadDAN, Oyster::Graphics::Loading::UnloadDAN);
Model::ModelInfo* mi = (Model::ModelInfo*)m->info;
@@ -109,10 +111,12 @@ namespace Oyster
void API::Clean()
{
+ DeleteModel(Render::DefaultRenderer::cube);
+ DeleteModel(Render::DefaultRenderer::cube2);
SAFE_DELETE(Core::viewPort);
Core::loader.Clean();
Oyster::Graphics::Core::PipelineManager::Clean();
- Oyster::Graphics::Render::Resources::Deffered::Clean();
+ Oyster::Graphics::Render::Resources::Clean();
SAFE_RELEASE(Core::depthStencil);
SAFE_RELEASE(Core::depthStencilUAV);
@@ -137,9 +141,51 @@ namespace Oyster
#ifdef _DEBUG
API::State API::ReloadShaders()
{
- Render::Resources::Deffered::InitShaders();
+ Render::Resources::InitShaders();
return State::Sucsess;
}
#endif
+
+ API::Option API::GetOption()
+ {
+ Option o;
+ o.BytesUsed = Core::UsedMem;
+ o.modelPath = Core::modelPath;
+ o.texturePath = Core::texturePath;
+ return o;
+ }
+
+ void API::StartGuiRender()
+ {
+ Render::Rendering::Gui::BeginRender();
+ }
+
+ void API::RenderGuiElement(API::Texture tex, Math::Float2 pos, Math::Float2 size)
+ {
+ Render::Rendering::Gui::Render((ID3D11ShaderResourceView*)tex,pos,size);
+ }
+
+ API::Texture API::CreateTexture(std::wstring filename)
+ {
+ return Core::loader.LoadResource((Core::texturePath + filename).c_str(),Oyster::Graphics::Loading::LoadTexture, Oyster::Graphics::Loading::UnloadTexture);
+ }
+
+ void API::DeleteTexture(API::Texture tex)
+ {
+ Core::loader.ReleaseResource(tex);
+ }
+
+ float API::PlayAnimation(Model::Model* m, std::wstring name,bool looping)
+ {
+ m->Animation.AnimationPlaying = &(*m->info->Animations.find(name)).second;
+ m->Animation.AnimationTime=0;
+ m->Animation.LoopAnimation = looping;
+ return m->Animation.AnimationPlaying->duration;
+ }
+
+ void API::Update(float dt)
+ {
+ deltaTime = dt;
+ }
}
}
\ No newline at end of file
diff --git a/Code/OysterGraphics/DllInterfaces/GFXAPI.h b/Code/OysterGraphics/DllInterfaces/GFXAPI.h
index 81a3bedc..65f82460 100644
--- a/Code/OysterGraphics/DllInterfaces/GFXAPI.h
+++ b/Code/OysterGraphics/DllInterfaces/GFXAPI.h
@@ -27,7 +27,9 @@ namespace Oyster
struct Option
{
std::wstring modelPath, texturePath;
+ int BytesUsed;
};
+ typedef void* Texture;
static State Init(HWND Window, bool MSAA_Quality, bool Fullscreen, Oyster::Math::Float2 StartResulotion);
#ifdef _DEBUG
@@ -40,16 +42,23 @@ namespace Oyster
static void Clean();
//! @brief Sets the view matrix to use next frame
- static void SetView(Oyster::Math::Float4x4& View);
+ static void SetView(const Oyster::Math::Float4x4& View);
//! @brief Sets the projection matrix to use next frame
- static void SetProjection(Oyster::Math::Float4x4& Projection);
+ static void SetProjection(const Oyster::Math::Float4x4& Projection);
//! @brief will internally use last values from SetView and SetProjection
static void NewFrame();
//! @brief Renders a list of models
static void RenderScene(Oyster::Graphics::Model::Model models[], int count);
//! @brief Renders a single model
- static void RenderModel(Oyster::Graphics::Model::Model& model);
+ static void RenderModel(Oyster::Graphics::Model::Model* model);
+
+ //! @brief Configures Renderer to process 2D graphics, data will be passed in to EndFrame()
+ static void StartGuiRender();
+
+ //! @brief Renders a single GUI element using the texture provided and the Pos in the center, %based system
+ static void RenderGuiElement(Texture, Math::Float2 Pos, Math::Float2 Size);
+
//! @brief Performs light calculations, post effects and presents the scene
static void EndFrame();
@@ -58,13 +67,25 @@ namespace Oyster
//! @brief deletes a model and relases the models resources
static void DeleteModel(Oyster::Graphics::Model::Model* model);
+ static Texture CreateTexture(std::wstring filename);
+ static void DeleteTexture(Texture);
+
//! @brief adds a light to the scene
- static void AddLight(Definitions::Pointlight light);
+ static void AddLight(const Definitions::Pointlight light);
//! @brief removes all lights from the scene
static void ClearLights();
- //! @brief Sets Options to the graphics, note: currently unused
+ //! @brief Sets Options to the graphics
static State SetOptions(Option);
+
+ //! @brief Gets Options from the graphics
+ static Option GetOption();
+
+ //! @brief Starts an animation and returns the time of the animation
+ static float PlayAnimation(Model::Model* model, std::wstring name, bool looping = false);
+
+ //! @brief Moves all animating models forward the specified time;
+ static void Update(float deltaTime);
};
}
}
diff --git a/Code/OysterGraphics/FileLoader/DanLoader.cpp b/Code/OysterGraphics/FileLoader/DanLoader.cpp
index 0eff143a..99302266 100644
--- a/Code/OysterGraphics/FileLoader/DanLoader.cpp
+++ b/Code/OysterGraphics/FileLoader/DanLoader.cpp
@@ -135,22 +135,23 @@ void Oyster::Graphics::Loading::UnloadDAN(void* data)
if(info->Animated)
{
//clean animation
- delete[] info->bones;
- for(int a = 0; a < info->AnimationCount; ++a)
+ for(auto a = info->Animations.begin(); a != info->Animations.end(); ++a)
{
- for(int x = 0; x < info->Animations[a].Bones; ++x)
+ for(int x = 0; x < (*a).second.Bones; ++x)
{
- delete[] info->Animations[a].Keyframes[x];
+ delete[] (*a).second.Keyframes[x];
}
- delete[] info->Animations[a].Frames;
- delete[] info->Animations[a].Keyframes;
+ delete[] (*a).second.Frames;
+ delete[] (*a).second.Keyframes;
}
- delete[] info->Animations;
+ info->Animations.clear();
}
- for(int i =0;iMaterial.size();++i)
+ for(UINT i =0;iMaterial.size();++i)
{
Core::loader.ReleaseResource(info->Material[i]);
}
+ if(info->BoneCount>0)
+ delete[] info->bones;
delete info;
}
@@ -179,6 +180,7 @@ void* Oyster::Graphics::Loading::LoadDAN(const wchar_t filename[])
Oyster::Graphics::Model::ModelInfo* modelInfo = new Oyster::Graphics::Model::ModelInfo();
modelInfo->Indexed = false;
modelInfo->Animated = false;
+ modelInfo->BoneCount = 0;
// Open file in binary mode
std::ifstream danFile;
danFile.open(filename, std::ios::binary);
@@ -349,7 +351,7 @@ void* Oyster::Graphics::Loading::LoadDAN(const wchar_t filename[])
Oyster::Graphics::Model::Animation* anims = new Oyster::Graphics::Model::Animation[animationHeader.numAnims];
- for(int a = 0; a < animationHeader.numAnims; ++a)
+ for(UINT a = 0; a < animationHeader.numAnims; ++a)
{
//read name of animation
int nameLength;
@@ -362,9 +364,6 @@ void* Oyster::Graphics::Loading::LoadDAN(const wchar_t filename[])
name[nameLength] = 0;
wchar_t* wName = charToWChar(name);
- anims[a].name = std::wstring(wName);
- delete[] wName;
- delete name;
//read nr of bones in animation
ReadData(&anims[a].Bones,danFile,4);
@@ -397,17 +396,18 @@ void* Oyster::Graphics::Loading::LoadDAN(const wchar_t filename[])
anims[a].Keyframes[b][f].bone.Parent = boneIndex;
//read bone transform
- ReadData(&anims[a].Keyframes[b][f].bone.Transform,danFile,sizeof(Oyster::Math::Matrix));
-
+ ReadData(&anims[a].Keyframes[b][f].bone.Relative, danFile, sizeof(Math::Matrix));
ReadData(&anims[a].Keyframes[b][f].time,danFile,sizeof(double));
}
}
- }
- modelInfo->AnimationCount = animationHeader.numAnims;
- modelInfo->Animations = anims;
- modelInfo->Animated = true;
+ modelInfo->Animations.insert(std::pair(std::wstring(wName), anims[a]));
+ delete[] wName;
+ delete name;
+ }
+ modelInfo->Animated = true;
+ delete[] anims;
break;
}
}
diff --git a/Code/OysterGraphics/FileLoader/ModelLoader.cpp b/Code/OysterGraphics/FileLoader/ModelLoader.cpp
index b7b8b09a..96fa0362 100644
--- a/Code/OysterGraphics/FileLoader/ModelLoader.cpp
+++ b/Code/OysterGraphics/FileLoader/ModelLoader.cpp
@@ -70,7 +70,7 @@ void Oyster::Graphics::Loading::UnloadOBJ(void* data)
{
SAFE_DELETE(info->Indecies);
}
- for(int i =0;iMaterial.size();++i)
+ for(UINT i =0;iMaterial.size();++i)
{
Core::loader.ReleaseResource(info->Material[i]);
}
@@ -690,6 +690,7 @@ static HRESULT CreateTextureFromWIC( _In_ ID3D11Device* d3dDevice,
SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
SRVDesc.Texture2D.MipLevels = (autogen) ? -1 : 1;
+ //TODO calc mipmap data
hr = d3dDevice->CreateShaderResourceView( tex, &SRVDesc, textureView );
if ( FAILED(hr) )
@@ -697,6 +698,9 @@ static HRESULT CreateTextureFromWIC( _In_ ID3D11Device* d3dDevice,
tex->Release();
return hr;
}
+ //todo check calc
+ int TexSize = twidth * theight * bpp;
+ Oyster::Graphics::Core::UsedMem += TexSize;
if ( autogen )
{
diff --git a/Code/OysterGraphics/FileLoader/ShaderLoader.cpp b/Code/OysterGraphics/FileLoader/ShaderLoader.cpp
index 5edc86dd..033be403 100644
--- a/Code/OysterGraphics/FileLoader/ShaderLoader.cpp
+++ b/Code/OysterGraphics/FileLoader/ShaderLoader.cpp
@@ -146,6 +146,7 @@ namespace Oyster
return NULL;
}
#endif
+ Core::UsedMem += data.size;
return Core::PipelineManager::CreateShader(data, Core::PipelineManager::ShaderType(type));
}
}
diff --git a/Code/OysterGraphics/Model/Model.h b/Code/OysterGraphics/Model/Model.h
index f4639c74..590d7d6a 100644
--- a/Code/OysterGraphics/Model/Model.h
+++ b/Code/OysterGraphics/Model/Model.h
@@ -10,13 +10,21 @@ namespace Oyster
namespace Model
{
struct ModelInfo;
+
+ struct Animation;
+
+ struct AnimationData
+ {
+ Animation* AnimationPlaying;
+ float AnimationTime;
+ bool LoopAnimation;
+ };
struct Model
{
ModelInfo* info;
Oyster::Math::Float4x4 WorldMatrix;
- bool Visible, LoopAnimation;
- int AnimationPlaying;
- float AnimationTime;
+ bool Visible;
+ AnimationData Animation;
};
}
diff --git a/Code/OysterGraphics/Model/ModelInfo.h b/Code/OysterGraphics/Model/ModelInfo.h
index 3a184f65..a53bcb23 100644
--- a/Code/OysterGraphics/Model/ModelInfo.h
+++ b/Code/OysterGraphics/Model/ModelInfo.h
@@ -13,7 +13,8 @@ namespace Oyster
{
struct Bone
{
- Math::Float4x4 Transform;
+ Math::Matrix Relative;
+ Math::Matrix Absolute;
int Parent;
};
struct Frame
@@ -23,7 +24,6 @@ namespace Oyster
};
struct Animation
{
- std::wstring name;
int Bones;
int* Frames; //! Bone as index
Frame** Keyframes; //! @brief [Bone][Frame]
@@ -36,7 +36,7 @@ namespace Oyster
bool Indexed, Animated;
int VertexCount, IndexCount, BoneCount, AnimationCount;
Bone* bones;
- Animation* Animations;
+ std::map Animations;
};
}
}
diff --git a/Code/OysterGraphics/OldResourses/Buffers.cpp b/Code/OysterGraphics/OldResourses/Buffers.cpp
deleted file mode 100644
index e36b3790..00000000
--- a/Code/OysterGraphics/OldResourses/Buffers.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "Buffers.h"
-
-namespace Oyster
-{
- namespace Resources
- {
- Buffer Buffers::V2DSprites = Buffer();
- Buffer Buffers::CbufferVS = Buffer();
- Buffer Buffers::CBufferGs = Buffer();
- Buffer Buffers::CBufferPipelineCs = Buffer();
-
- void Buffers::Init()
- {
- Buffer::BUFFER_INIT_DESC desc;
-
- desc.ElementSize=sizeof(Math::Float2);
- desc.NumElements=1;
- desc.Type = Buffer::BUFFER_TYPE::VERTEX_BUFFER;
- desc.Usage = Buffer::BUFFER_USAGE::BUFFER_DEFAULT;
- desc.InitData = &Math::Float2(0,0);
-
- V2DSprites.Init(desc);
-
- desc.Type=Buffer::BUFFER_TYPE::CONSTANT_BUFFER_VS;
- desc.Usage = Buffer::BUFFER_USAGE::BUFFER_CPU_WRITE_DISCARD;
- desc.ElementSize=sizeof(Math::Float4x4);
- desc.InitData=0;
-
- CbufferVS.Init(desc);
-
- desc.Type = Buffer::BUFFER_TYPE::CONSTANT_BUFFER_GS;
-
- CBufferGs.Init(desc);
-
- desc.ElementSize=sizeof(Oyster::Resources::BufferDefinitions::LightStructureBuffer);
- desc.NumElements=1;
- desc.Type = Buffer::BUFFER_TYPE::CONSTANT_BUFFER_CS;
- desc.Usage = Buffer::BUFFER_USAGE::BUFFER_CPU_WRITE_DISCARD;
- desc.InitData = NULL;
-
- CBufferPipelineCs.Init(desc);
- }
- }
-}
\ No newline at end of file
diff --git a/Code/OysterGraphics/OldResourses/Buffers.h b/Code/OysterGraphics/OldResourses/Buffers.h
deleted file mode 100644
index ec445b6c..00000000
--- a/Code/OysterGraphics/OldResourses/Buffers.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-
-#include "../EngineIncludes.h"
-
-namespace Oyster
-{
- namespace Resources
- {
- struct Buffers
- {
- static Buffer V2DSprites;
-
- static Buffer CbufferVS;
-
- static Buffer CBufferGs;
-
- static Buffer CBufferPipelineCs;
-
- static void Init();
- };
- }
-}
\ No newline at end of file
diff --git a/Code/OysterGraphics/OldResourses/GraphicsDefinitions.h b/Code/OysterGraphics/OldResourses/GraphicsDefinitions.h
deleted file mode 100644
index 12a85d5f..00000000
--- a/Code/OysterGraphics/OldResourses/GraphicsDefinitions.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#pragma once
-
-
-#include "..\EngineIncludes.h"
-
-namespace Oyster
-{
- namespace Resources
- {
-
- namespace BufferDefinitions
- {
- struct LightStructureBuffer
- {
- ::Oyster::Math::Float4x4 viewMatrix, projectionMatrix;
- ::LinearAlgebra::Vector3 numDispatches;
- unsigned int reservedPadding;
- };
-
- struct ScreenTileFrustrum
- {
- ::Oyster::Math::Float rawElement[6 * 4];
- };
-
- class PointLightDescription
- {
- public:
- struct{ ::Oyster::Math::Float3 center; ::Oyster::Math::Float radius; } pos;
- ::Oyster::Math::Float3 color;
- ::Oyster::Math::Float intensty;
- };
- };
- }
-}
\ No newline at end of file
diff --git a/Code/OysterGraphics/OldResourses/Manager.cpp b/Code/OysterGraphics/OldResourses/Manager.cpp
deleted file mode 100644
index 47aa5eaf..00000000
--- a/Code/OysterGraphics/OldResourses/Manager.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#include "Manager.h"
-
-std::unordered_map< std::string, Oyster::Render::ModelInfo*> Oyster::Resources::Manager::loadedModels = std::unordered_map< std::string, Oyster::Render::ModelInfo*>();
-
-Oyster::Render::Model* Oyster::Resources::Manager::LoadModel(std::string Filename, Matrix Scale)
-{
- ////TODO: Add redundncy sheck, to ensure not recreating model
-
- ////Loop to find filename
-
- ////If found Return Model
-
- ////else Create Model
-
- //Oyster::FileLoaders::ObjReader *reader = Oyster::FileLoaders::ObjReader::LoadFile(Filename, Scale);
- //Oyster::FileLoaders::ObjReader::Vertex** vertex = new Oyster::FileLoaders::ObjReader::Vertex*[1];
- //int vcount;
- //std::map textures;
- //reader->GetVertexData( vertex, vcount, textures );
-
- //Oyster::Buffer::BUFFER_INIT_DESC desc;
- //desc.ElementSize=sizeof(Oyster::FileLoaders::ObjReader::Vertex);
- //desc.NumElements = vcount;
- //desc.InitData = *vertex;
- //desc.Type = Oyster::Buffer::VERTEX_BUFFER;
- //desc.Usage = Oyster::Buffer::BUFFER_DEFAULT;
- //
- //ID3D11ShaderResourceView *srv = textures["Diffuse"];
-
- //Oyster::Render::ModelInfo* m = new Oyster::Render::ModelInfo();
- //
- //m->Vertices = *(Oyster::Engine::Init::Buffers::CreateBuffer(desc));
- //m->VertexCount = vcount;
- //m->Material.push_back(srv);
- //srv = textures["Specular"];
- //m->Material.push_back(srv);
- //srv = textures["Glow"];
- //m->Material.push_back(srv);
- //m->Indexed=false;
- //
- //Oyster::Render::Model* model = new Oyster::Render::Model();
- //model->info=m;
- //model->Visible = true;
- //model->World = &Oyster::Math::Float4x4(Oyster::Math::Float4x4::identity);
- return NULL;
-}
-
diff --git a/Code/OysterGraphics/OldResourses/Manager.h b/Code/OysterGraphics/OldResourses/Manager.h
deleted file mode 100644
index 6de367e3..00000000
--- a/Code/OysterGraphics/OldResourses/Manager.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#pragma once
-
-#include "../EngineIncludes.h"
-#include
-
-namespace Oyster
-{
- namespace Resources
- {
- struct Manager
- {
- //Expects to be deleted either trough manager or after a clean
- static Oyster::Render::Model* LoadModel(std::string Filename, Matrix Scale);
- static void Clean();
-
- private:
- static std::unordered_map< std::string, Oyster::Render::ModelInfo*> loadedModels;
- };
- }
-}
\ No newline at end of file
diff --git a/Code/OysterGraphics/OldResourses/PipelineResources.cpp b/Code/OysterGraphics/OldResourses/PipelineResources.cpp
deleted file mode 100644
index 27947c41..00000000
--- a/Code/OysterGraphics/OldResourses/PipelineResources.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-#include "PipelineResources.h"
-
-using namespace Oyster::Resources;
-
-ID3D11UnorderedAccessView* PipeLineResourses::TempUav = 0;
-ID3D11ShaderResourceView* PipeLineResourses::TempSrv = 0;
-
-ID3D11ShaderResourceView* PipeLineResourses::GeometryOut[5] = {0};
-ID3D11RenderTargetView* PipeLineResourses::GeometryTarget[5] = {0};
-
-ID3D11ShaderResourceView* PipeLineResourses::ComputeResources[4] = {0};
-Oyster::Buffer* PipeLineResourses::Resources[2] = {0};
-
-ID3D11ShaderResourceView* PipeLineResourses::LightOut[4] = {0};
-ID3D11UnorderedAccessView* PipeLineResourses::LightTarget[4] = {0};
-
-ID3D11RenderTargetView* PipeLineResourses::RtvNulls[16] = {0};
-ID3D11ShaderResourceView* PipeLineResourses::SrvNulls[16] = {0};
-ID3D11UnorderedAccessView* PipeLineResourses::uavNULL[16] = {0};
-
-//Oyster::Collision3D::Frustrum* PipeLineResourses::SubFrustrums = 0;
-int PipeLineResourses::FrustrumSize = 0;
-LinearAlgebra::Vector3 PipeLineResourses::FrustrumDimensions = LinearAlgebra::Vector3();
-
-Oyster::Resources::BufferDefinitions::LightStructureBuffer PipeLineResourses::LightData = Oyster::Resources::BufferDefinitions::LightStructureBuffer();
-
-void PipeLineResourses::Init(int sizeX, int sizeY)
-{
- InitGeometry(sizeX, sizeY);
-
- InitSSAOData();
- InitSubFrustrums(sizeX, sizeY);
- InitPointLights();
- InitLightData();
-
- InitLighting(sizeX, sizeY);
-}
-
-void PipeLineResourses::InitGeometry(int sizeX, int sizeY)
-{
- D3D11_TEXTURE2D_DESC Tdesc;
- Tdesc.Width = sizeX;
- Tdesc.Height = sizeY;
- Tdesc.MipLevels = Tdesc.ArraySize = 1;
- Tdesc.Format = DXGI_FORMAT_R32G32B32A32_FLOAT;
- Tdesc.SampleDesc.Count = 1;
- Tdesc.SampleDesc.Quality=0;
- Tdesc.Usage = D3D11_USAGE_DEFAULT;
- Tdesc.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET;
- Tdesc.CPUAccessFlags = 0;
- Tdesc.MiscFlags = 0;
-
- ID3D11Texture2D *pTexture;
- HRESULT hr;
-
- //Geometry stage resourses
- for( int i = 0; i < 5; ++i )
- {
- hr = Oyster::Core::Device->CreateTexture2D( &Tdesc, NULL, &pTexture );
- hr = Oyster::Core::Device->CreateShaderResourceView(pTexture,0,&GeometryOut[i]);
- hr = Oyster::Core::Device->CreateRenderTargetView(pTexture,0,&GeometryTarget[i]);
- pTexture->Release();
- }
-}
-
-void PipeLineResourses::InitSSAOData()
-{
- //create Half Spheres and Random Data
-
- Oyster::Buffer::BUFFER_INIT_DESC desc;
- HRESULT hr;
-
- int NrOfSamples = Oyster::Engine::States::GetNrOfSSAOSamples();
- int SampleSpread = Oyster::Engine::States::GetSSAOSampleSpread();
-
- Oyster::Math::Vector3* kernel = new Oyster::Math::Vector3[ NrOfSamples ];
- Oyster::Math::Vector3* random = new Oyster::Math::Vector3[ SampleSpread ];
-
- for(int i = 0; i < NrOfSamples; ++i)
- {
- kernel[i] = Oyster::Math::Vector3::null;
- while( kernel[i] == Oyster::Math::Vector3::null )
- {
- kernel[i] = Oyster::Math::Vector3(
- (float)rand() / (RAND_MAX + 1) * (1 - -1) + -1,
- (float)rand() / (RAND_MAX + 1) * (1 - -1) + -1,
- (float)rand() / (RAND_MAX + 1) * (1 - 0) + 0);
- }
- kernel[i].Normalize();
-
- float scale = float(i) / float(NrOfSamples);
- scale = (0.1f*(1 - scale * scale) + 1.0f *( scale * scale));
- kernel[i] *= scale;
-
- if( i < SampleSpread)
- {
- random[i] = Oyster::Math::Vector3::null;
- while( random[i] == Oyster::Math::Vector3::null )
- {
- random[i] = Oyster::Math::Vector3(
- (float)rand() / (RAND_MAX + 1) * (1 - -1)+ -1,
- (float)rand() / (RAND_MAX + 1) * (1 - -1)+ -1,
- 0.0f);
- }
- random[i].Normalize();
- }
- }
-
-
- D3D11_TEXTURE1D_DESC T1desc;
- T1desc.Width = NrOfSamples;
- T1desc.MipLevels = T1desc.ArraySize = 1;
- T1desc.Format = DXGI_FORMAT_R32G32B32_FLOAT;
- T1desc.Usage = D3D11_USAGE_DEFAULT;
- T1desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
- T1desc.CPUAccessFlags = 0;
- T1desc.MiscFlags = 0;
-
- D3D11_SUBRESOURCE_DATA sphere;
- sphere.pSysMem = kernel;
-
- D3D11_SUBRESOURCE_DATA rnd;
- rnd.pSysMem = random;
-
-
- ID3D11Texture1D *pTexture1[2];
-
- hr = Oyster::Core::Device->CreateTexture1D( &T1desc, &sphere, &pTexture1[0] );
- hr = Oyster::Core::Device->CreateShaderResourceView( pTexture1[0], 0, &ComputeResources[3] );
- pTexture1[0]->Release();
- delete[] kernel;
-
- T1desc.Width = SampleSpread;
- hr = Oyster::Core::Device->CreateTexture1D( &T1desc, &rnd, &pTexture1[1] );
- hr = Oyster::Core::Device->CreateShaderResourceView( (pTexture1[1]), 0, &ComputeResources[2] );
- pTexture1[1]->Release();
- delete[] random;
-}
-
-void PipeLineResourses::InitSubFrustrums(int sizeX, int sizeY)
-{
- FrustrumDimensions.x = (sizeX + 15U) / 16U;
- FrustrumDimensions.y = (sizeY + 15U) / 16U;
- FrustrumDimensions.z = 1;
- FrustrumSize = FrustrumDimensions.x * FrustrumDimensions.y * FrustrumDimensions.z;
- //if(SubFrustrums!=0)
- //delete[] SubFrustrums;
- //SubFrustrums = new Collision3D::Frustrum[ FrustrumSize ];
-
- Oyster::Buffer::BUFFER_INIT_DESC desc;
- D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc;
-
- //buffer description for SubFrustrums
- desc.Usage = Oyster::Buffer::BUFFER_CPU_WRITE_DISCARD;
- desc.Type = Oyster::Buffer::STRUCTURED_BUFFER;
- desc.ElementSize = sizeof( ::Oyster::Resources::BufferDefinitions::ScreenTileFrustrum);
- desc.NumElements = FrustrumSize;
- desc.InitData = NULL;
-
- //create matching srv
- srvDesc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;
- srvDesc.Format = DXGI_FORMAT_UNKNOWN;
- srvDesc.Buffer.FirstElement = 0;
- srvDesc.Buffer.NumElements = FrustrumSize;
-
- PipeLineResourses::Resources[0] = Oyster::Engine::Init::Buffers::CreateBuffer(desc);
-
- HRESULT hr = Oyster::Core::Device->CreateShaderResourceView( *PipeLineResourses::Resources[0], &srvDesc, &Oyster::Resources::PipeLineResourses::ComputeResources[0] );
-}
-
-void PipeLineResourses::InitPointLights()
-{
- D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc;
- Oyster::Buffer::BUFFER_INIT_DESC desc;
- HRESULT hr;
-
- //buffer description for pointlight
- desc.Usage = Oyster::Buffer::BUFFER_CPU_WRITE_DISCARD;
- desc.Type = Oyster::Buffer::STRUCTURED_BUFFER;
- desc.ElementSize = sizeof(Oyster::Resources::BufferDefinitions::PointLightDescription);
- desc.NumElements = Oyster::Engine::States::GetMaxPointlights();
- desc.InitData = NULL;
-
- PipeLineResourses::Resources[1] = Oyster::Engine::Init::Buffers::CreateBuffer(desc);
-
- //create matching srv
- srvDesc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;
- srvDesc.Format = DXGI_FORMAT_UNKNOWN;
- srvDesc.Buffer.FirstElement = 0;
- srvDesc.Buffer.NumElements = Oyster::Engine::States::GetMaxPointlights();
-
- hr = Oyster::Core::Device->CreateShaderResourceView( *PipeLineResourses::Resources[1], &srvDesc, &Oyster::Resources::PipeLineResourses::ComputeResources[1] );
-}
-
-void PipeLineResourses::InitLightData()
-{
- LightData.numDispatches = FrustrumDimensions;
-}
-
-void PipeLineResourses::InitLighting(int sizeX, int sizeY)
-{
- D3D11_TEXTURE2D_DESC Tdesc;
- Tdesc.Width = sizeX;
- Tdesc.Height = sizeY;
- Tdesc.MipLevels = Tdesc.ArraySize = 1;
- Tdesc.Format = DXGI_FORMAT_R32G32B32A32_FLOAT;
- Tdesc.SampleDesc.Count = 1;
- Tdesc.SampleDesc.Quality=0;
- Tdesc.Usage = D3D11_USAGE_DEFAULT;
- Tdesc.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_UNORDERED_ACCESS;
- Tdesc.CPUAccessFlags = 0;
- Tdesc.MiscFlags = 0;
-
- ID3D11Texture2D *pTexture;
- HRESULT hr;
- for(int i = 0; i < 4; ++i )
- {
- hr = Oyster::Core::Device->CreateTexture2D( &Tdesc, NULL, &pTexture );
- hr = Oyster::Core::Device->CreateShaderResourceView( pTexture, 0, &(LightOut[i]) );
- hr = Oyster::Core::Device->CreateUnorderedAccessView( pTexture, 0, &(LightTarget[i]) );
- pTexture->Release();
- }
-
- hr = Oyster::Core::Device->CreateTexture2D( &Tdesc, NULL, &pTexture );
- hr = Oyster::Core::Device->CreateShaderResourceView( pTexture, 0, &TempSrv );
- hr = Oyster::Core::Device->CreateUnorderedAccessView( pTexture, 0, &TempUav );
- pTexture->Release();
-}
\ No newline at end of file
diff --git a/Code/OysterGraphics/OldResourses/PipelineResources.h b/Code/OysterGraphics/OldResourses/PipelineResources.h
deleted file mode 100644
index 47f89c2d..00000000
--- a/Code/OysterGraphics/OldResourses/PipelineResources.h
+++ /dev/null
@@ -1,66 +0,0 @@
-#pragma once
-
-#ifndef PipeLineResources_H
-#define PipeLineResources_H
-
-#include "..\EngineIncludes.h"
-
-namespace Oyster
-{
- namespace Resources
- {
- struct PipeLineResourses
- {
- //0 = Diffuse
- //1 = Specular
- //2 = Glow
- //3 = Pos
- //4 = Normal
- static ID3D11ShaderResourceView* GeometryOut[5];
- static ID3D11RenderTargetView* GeometryTarget[5];
-
-
- //0 = TileBuffer
- //1 = PointList
- //2 = Random
- //3 = Sphere
- static ID3D11ShaderResourceView* ComputeResources[4];
- static Oyster::Buffer* Resources[2];
-
-
- //0 = Diffuse
- //1 = Specular
- //2 = Glow
- //3 = SSAO
- static ID3D11ShaderResourceView* LightOut[4];
- static ID3D11UnorderedAccessView* LightTarget[4];
-
- //0 = BlurTempStorage
- static ID3D11UnorderedAccessView* TempUav;
- static ID3D11ShaderResourceView* TempSrv;
-
- static ID3D11RenderTargetView* RtvNulls[16];
- static ID3D11ShaderResourceView* SrvNulls[16];
- static ID3D11UnorderedAccessView* uavNULL[16];
-
- //static Oyster::Collision3D::Frustrum* SubFrustrums;
- static int FrustrumSize;
- static LinearAlgebra::Vector3 FrustrumDimensions;
-
- static Oyster::Resources::BufferDefinitions::LightStructureBuffer LightData;
-
- static void Init(int sizeX, int sizeY);
-
- static void InitGeometry(int sizeX, int sizeY);
-
- static void InitSSAOData();
- static void InitSubFrustrums(int sizeX, int sizeY);
- static void InitPointLights();
- static void InitLightData();
-
- static void InitLighting(int sizeX, int sizeY);
- };
- }
-}
-
-#endif
\ No newline at end of file
diff --git a/Code/OysterGraphics/OldResourses/ShaderEffects.cpp b/Code/OysterGraphics/OldResourses/ShaderEffects.cpp
deleted file mode 100644
index 33de3c05..00000000
--- a/Code/OysterGraphics/OldResourses/ShaderEffects.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-#include "ShaderEffects.h"
-
-namespace Oyster
-{
- namespace Resources
- {
- Core::ShaderManager::ShaderEffect ShaderEffects::BasicSprite = Core::ShaderManager::ShaderEffect();
- Core::ShaderManager::ShaderEffect ShaderEffects::Text2DEffect = Core::ShaderManager::ShaderEffect();
- Core::ShaderManager::ShaderEffect ShaderEffects::ModelEffect = Core::ShaderManager::ShaderEffect();
-
- void ShaderEffects::Init()
- {
- BasicSprite.IAStage.Topology = D3D11_PRIMITIVE_TOPOLOGY_POINTLIST;
- BasicSprite.Shaders.Vertex = Oyster::Core::ShaderManager::Get::Vertex(L"2D");
- BasicSprite.Shaders.Geometry = Oyster::Core::ShaderManager::Get::Geometry(L"2D");
- BasicSprite.Shaders.Pixel = Oyster::Core::ShaderManager::Get::Pixel(L"Texture0");
-
- D3D11_BLEND_DESC blendDesc;
- blendDesc.AlphaToCoverageEnable=false;
- blendDesc.IndependentBlendEnable=false;
- blendDesc.RenderTarget[0].BlendEnable=true;
-
- blendDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA;
- blendDesc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA;
- blendDesc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD;
-
- blendDesc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE;
- blendDesc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ONE;
- blendDesc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_MAX;
-
- blendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
-
- ID3D11BlendState* blender;
-
- Oyster::Core::Device->CreateBlendState(&blendDesc,&blender);
-
- BasicSprite.RenderStates.BlendState = blender;
-
- ID3D11InputLayout* layout;
-
- Oyster::Core::ShaderManager::CreateInputLayout(SpriteVertexDesc,1,Oyster::Core::ShaderManager::Get::Vertex(L"2D"),layout);
-
- BasicSprite.IAStage.Layout = layout;
-
- Text2DEffect.IAStage.Topology=D3D11_PRIMITIVE_TOPOLOGY_POINTLIST;
- Text2DEffect.Shaders.Vertex = Oyster::Core::ShaderManager::Get::Vertex(L"Text");
- Text2DEffect.Shaders.Geometry = Oyster::Core::ShaderManager::Get::Geometry(L"Text");
- Text2DEffect.Shaders.Pixel = Oyster::Core::ShaderManager::Get::Pixel(L"Texture0");
-
- Oyster::Core::ShaderManager::CreateInputLayout(Text2DDesc,3,Oyster::Core::ShaderManager::Get::Vertex(L"Text"),layout);
-
- Text2DEffect.IAStage.Layout = layout;
-
- blendDesc.AlphaToCoverageEnable = true;
- Oyster::Core::Device->CreateBlendState(&blendDesc,&blender);
- Text2DEffect.RenderStates.BlendState = blender;
-
- ModelEffect.IAStage.Topology = D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
- Oyster::Core::ShaderManager::CreateInputLayout(ModelDesc,3,Oyster::Core::ShaderManager::Get::Vertex(L"OBJ"),layout);
- ModelEffect.IAStage.Layout = layout;
-
- ModelEffect.Shaders.Vertex = Oyster::Core::ShaderManager::Get::Vertex(L"OBJ");
- ModelEffect.Shaders.Pixel = Oyster::Core::ShaderManager::Get::Pixel(L"OBJDEF");
-
- Oyster::Buffer::BUFFER_INIT_DESC desc;
-
- desc.ElementSize=sizeof(Oyster::Math::Float4x4);
- desc.NumElements = 1;
- desc.Usage = Oyster::Buffer::BUFFER_CPU_WRITE_DISCARD;
- desc.Type = Oyster::Buffer::CONSTANT_BUFFER_VS;
- desc.InitData = NULL;
-
- ModelEffect.CBuffers.Vertex.push_back(Oyster::Engine::Init::Buffers::CreateBuffer(desc));
- ModelEffect.CBuffers.Vertex.push_back(Oyster::Engine::Init::Buffers::CreateBuffer(desc));
-
- //use Oyster::Resources::Buffers::CbufferVS for per object data
- //perObject = Oyster::Engine::Init::Buffers::CreateBuffer(desc);
-
- }
-
- D3D11_INPUT_ELEMENT_DESC ShaderEffects::SpriteVertexDesc[1] =
- {
- {"POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0},
- };
-
- D3D11_INPUT_ELEMENT_DESC ShaderEffects::Text2DDesc[3] =
- {
- {"Position",0, DXGI_FORMAT_R32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0},
- {"Offset",0, DXGI_FORMAT_R32_SINT, 0, 4, D3D11_INPUT_PER_VERTEX_DATA, 0},
- {"CharOffset",0, DXGI_FORMAT_R32_FLOAT, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0},
- };
-
- D3D11_INPUT_ELEMENT_DESC ShaderEffects::ModelDesc[3] =
- {
- {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0},
- {"NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0},
- {"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 24, D3D11_INPUT_PER_VERTEX_DATA, 0},
- };
- }
-}
\ No newline at end of file
diff --git a/Code/OysterGraphics/OldResourses/ShaderEffects.h b/Code/OysterGraphics/OldResourses/ShaderEffects.h
deleted file mode 100644
index 766d63a9..00000000
--- a/Code/OysterGraphics/OldResourses/ShaderEffects.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once
-
-#include "../Engine.h"
-#include "Buffers.h"
-
-namespace Oyster
-{
- namespace Resources
- {
- struct ShaderEffects
- {
- static Oyster::Core::ShaderManager::ShaderEffect BasicSprite;
- static Oyster::Core::ShaderManager::ShaderEffect Text2DEffect;
- static Oyster::Core::ShaderManager::ShaderEffect ModelEffect;
-
- static void Init();
-
- static D3D11_INPUT_ELEMENT_DESC SpriteVertexDesc[1];
- static D3D11_INPUT_ELEMENT_DESC Text2DDesc[3];
- static D3D11_INPUT_ELEMENT_DESC ModelDesc[3];
- };
- }
-}
\ No newline at end of file
diff --git a/Code/OysterGraphics/OysterGraphics.vcxproj b/Code/OysterGraphics/OysterGraphics.vcxproj
index e9b8ff72..c19e073f 100644
--- a/Code/OysterGraphics/OysterGraphics.vcxproj
+++ b/Code/OysterGraphics/OysterGraphics.vcxproj
@@ -78,6 +78,7 @@
$(ProjectName)_$(PlatformShortName)
C:\Program Files (x86)\Visual Leak Detector\include;$(IncludePath)
C:\Program Files (x86)\Visual Leak Detector\lib\Win32;$(LibraryPath)
+ true
$(SolutionDir)..\Bin\DLL\
@@ -181,8 +182,9 @@
-
-
+
+
+
@@ -193,9 +195,10 @@
-
+
+
-
+
@@ -206,19 +209,41 @@
-
+
+ Geometry
+ 5.0
+ Geometry
+ 4.0
+ Geometry
+ 4.0
+ Geometry
+ 4.0
+
+
+ Pixel
+ Pixel
+ Pixel
+ Pixel
+
+
+ Vertex
+ Vertex
+ Vertex
+ Vertex
+
+
Compute
Compute
Compute
Compute
-
+
Pixel
Pixel
Pixel
Pixel
-
+
Compute
5.0
Compute
@@ -228,7 +253,27 @@
Compute
5.0
-
+
+ Compute
+ 5.0
+ Compute
+ 5.0
+ Compute
+ 5.0
+ Compute
+ 5.0
+
+
+ Compute
+ 5.0
+ Compute
+ 5.0
+ Compute
+ 5.0
+ Compute
+ 5.0
+
+
Vertex
Vertex
Vertex
@@ -273,12 +318,14 @@
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/Code/OysterGraphics/OysterGraphics.vcxproj.filters b/Code/OysterGraphics/OysterGraphics.vcxproj.filters
index 11d05dde..4fcaee03 100644
--- a/Code/OysterGraphics/OysterGraphics.vcxproj.filters
+++ b/Code/OysterGraphics/OysterGraphics.vcxproj.filters
@@ -24,9 +24,6 @@
Source Files
-
- Source Files
-
Source Files
@@ -42,15 +39,21 @@
Source Files
-
- Source Files
-
-
- Source Files
-
Source Files
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
@@ -59,9 +62,6 @@
Header Files
-
- Header Files
-
Header Files
@@ -83,10 +83,13 @@
Header Files
-
+
Header Files
-
+
+ Header Files
+
+
Header Files
@@ -95,15 +98,24 @@
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Code/OysterGraphics/Render/DefaultRenderer.cpp b/Code/OysterGraphics/Render/DefaultRenderer.cpp
new file mode 100644
index 00000000..89fb1716
--- /dev/null
+++ b/Code/OysterGraphics/Render/DefaultRenderer.cpp
@@ -0,0 +1,198 @@
+#include "DefaultRenderer.h"
+#include "Resources.h"
+#include "../Definitions/GraphicalDefinition.h"
+#include "../Model/ModelInfo.h"
+#include "../DllInterfaces/GFXAPI.h"
+#include