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