1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// found in the LICENSE file. 4f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#ifndef CONTENT_BROWSER_ANDROID_UI_RESOURCE_PROVIDER_IMPL_H_ 6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define CONTENT_BROWSER_ANDROID_UI_RESOURCE_PROVIDER_IMPL_H_ 7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/containers/hash_tables.h" 96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "content/browser/android/system_ui_resource_manager_impl.h" 10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "content/public/browser/android/ui_resource_provider.h" 11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace cc { 13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class LayerTreeHost; 14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace content { 17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class UIResourceClientAndroid; 19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class UIResourceProviderImpl : public UIResourceProvider { 21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) public: 22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) UIResourceProviderImpl(); 23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) virtual ~UIResourceProviderImpl(); 25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) void SetLayerTreeHost(cc::LayerTreeHost* host); 27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) void UIResourcesAreInvalid(); 29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) virtual cc::UIResourceId CreateUIResource( 31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) UIResourceClientAndroid* client) OVERRIDE; 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) virtual void DeleteUIResource(cc::UIResourceId resource_id) OVERRIDE; 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ui::SystemUIResourceManager& GetSystemUIResourceManager(); 366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci void SetSupportsETC1NonPowerOfTwo(bool supports_etc1_npot) { 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci supports_etc1_npot_ = supports_etc1_npot; 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool SupportsETC1NonPowerOfTwo() const OVERRIDE; 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 42f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) private: 43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) typedef base::hash_map<cc::UIResourceId, UIResourceClientAndroid*> 44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) UIResourceClientMap; 45f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) UIResourceClientMap ui_resource_client_map_; 466e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) SystemUIResourceManagerImpl system_ui_resource_manager_; 47f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) cc::LayerTreeHost* host_; 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool supports_etc1_npot_; 49f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 50f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(UIResourceProviderImpl); 51f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}; 52f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 53f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} // namespace content 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif // CONTENT_BROWSER_ANDROID_UI_RESOURCE_PROVIDER_IMPL_H_ 56