Home | History | Annotate | Download | only in resources
      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 CC_RESOURCES_SCOPED_GPU_RASTER_H_
      6 #define CC_RESOURCES_SCOPED_GPU_RASTER_H_
      7 
      8 #include "base/logging.h"
      9 #include "base/memory/scoped_ptr.h"
     10 #include "cc/base/cc_export.h"
     11 #include "cc/output/context_provider.h"
     12 
     13 namespace cc {
     14 
     15 // The following class is needed to modify GL resources using GPU
     16 // raster. The user must ensure that they only use GPU raster on
     17 // GL resources while an instance of this class is alive.
     18 class CC_EXPORT ScopedGpuRaster {
     19  public:
     20   ScopedGpuRaster(ContextProvider* context_provider);
     21   ~ScopedGpuRaster();
     22 
     23  private:
     24   void BeginGpuRaster();
     25   void EndGpuRaster();
     26 
     27   ContextProvider* context_provider_;
     28 
     29   DISALLOW_COPY_AND_ASSIGN(ScopedGpuRaster);
     30 };
     31 
     32 }  // namespace cc
     33 
     34 #endif  // CC_RESOURCES_SCOPED_GPU_RASTER_H_
     35