Quellcode durchsuchen

Create texture in online() and destroy it in offline()

Daniele Bartolini vor 12 Jahren
Ursprung
Commit
9f69f9b972
1 geänderte Dateien mit 10 neuen und 2 gelöschten Zeilen
  1. 10 2
      engine/resource/TextureResource.h

+ 10 - 2
engine/resource/TextureResource.h

@@ -32,6 +32,8 @@ OTHER DEALINGS IN THE SOFTWARE.
 #include "Bundle.h"
 #include "Bundle.h"
 #include "Allocator.h"
 #include "Allocator.h"
 #include "File.h"
 #include "File.h"
+#include "Device.h"
+#include "Renderer.h"
 
 
 namespace crown
 namespace crown
 {
 {
@@ -74,7 +76,9 @@ public:
 	//-----------------------------------------------------------------------------
 	//-----------------------------------------------------------------------------
 	static void online(void* resource)
 	static void online(void* resource)
 	{
 	{
-		CE_ASSERT(resource != NULL, "Resource not loaded");
+		TextureResource* t = (TextureResource*) resource;
+
+		t->m_texture = device()->renderer()->create_texture(t->width(), t->height(), t->format(), t->data());
 	}
 	}
 
 
 	//-----------------------------------------------------------------------------
 	//-----------------------------------------------------------------------------
@@ -87,9 +91,11 @@ public:
 	}
 	}
 
 
 	//-----------------------------------------------------------------------------
 	//-----------------------------------------------------------------------------
-	static void offline(void* /*resource*/)
+	static void offline(void* resource)
 	{
 	{
+		TextureResource* t = (TextureResource*) resource;
 
 
+		device()->renderer()->destroy_texture(t->m_texture);
 	}
 	}
 
 
 public:
 public:
@@ -118,6 +124,8 @@ private:
 
 
 	TextureHeader		m_header;
 	TextureHeader		m_header;
 	uint8_t*			m_data;
 	uint8_t*			m_data;
+
+	TextureId m_texture;
 };
 };
 
 
 } // namespace crown
 } // namespace crown