Browse Source

Примеры SpriteBatch: Используем текстуры с размером кратным двойке, чтобы не было проблем в вебе

1vanK 3 years ago
parent
commit
864b08023f

+ 13 - 2
Source/Samples/56_SpriteBatch/SpriteBatch.cpp

@@ -191,8 +191,19 @@ public:
         ResourceCache* cache = GetSubsystem<ResourceCache>();
         Graphics* graphics = GetSubsystem<Graphics>();
 
-        Texture2D* ball = cache->GetResource<Texture2D>("Urho2D/Ball.png");
-        Texture2D* head = cache->GetResource<Texture2D>("Urho2D/imp/imp_head.png");
+        // Размер текстуры должен быть степенью двойки (64, 128, 256, ...),
+        // иначе она не будет работать в GL ES 1.0 (в вебе).
+        // В некоторых случаях (например для "Urho2D/Stretchable.png" - 200x200) может помочь
+        // Texture2D* head = cache->GetResource<Texture2D>("Urho2D/Stretchable.png");
+        // if (head->GetAddressMode(COORD_U) == ADDRESS_WRAP)
+        // {
+        //     head->SetAddressMode(COORD_U, ADDRESS_CLAMP);
+        //     head->SetAddressMode(COORD_V, ADDRESS_CLAMP);
+        // }
+        // как это сделано в Sprite2D.cpp.
+        // В других случаях ("Urho2D/imp/imp_head.png" - 238x149) и это не помогает.
+
+        Texture2D* head = cache->GetResource<Texture2D>("Textures/FishBoneLogo.png");
         Font* font = cache->GetResource<Font>("Fonts/Anonymous Pro.ttf");
 
         // Очистка экрана. Если сцена пустая, то можно просто задать цвет зоны

+ 1 - 1
Source/Samples/99_Benchmark/AppState_Benchmark04.cpp

@@ -59,7 +59,7 @@ void AppState_Benchmark04::HandleEndAllViewsRender(StringHash eventType, Variant
     Graphics* graphics = GetSubsystem<Graphics>();
     ResourceCache* cache = GetSubsystem<ResourceCache>();
     Texture2D* ball = GetSubsystem<ResourceCache>()->GetResource<Texture2D>("Urho2D/Ball.png");
-    Texture2D* head = cache->GetResource<Texture2D>("Urho2D/imp/imp_head.png");
+    Texture2D* head = cache->GetResource<Texture2D>("Textures/FishBoneLogo.png");
 
     GetSubsystem<Graphics>()->Clear(CLEAR_COLOR, Color::GREEN);