14ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
24ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
34ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// found in the LICENSE file.
44ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
54ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch#ifndef UI_GL_ANDROID_SURFACE_TEXTURE_TRACKER_H_
64ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch#define UI_GL_ANDROID_SURFACE_TEXTURE_TRACKER_H_
74ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
84ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch#include "base/memory/ref_counted.h"
94ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch#include "ui/gl/gl_export.h"
104ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
114ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdochnamespace gfx {
124ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
134ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdochclass SurfaceTexture;
144ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
154ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// This interface is used to take ownership of preallocated surface textures
164ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch// with specific ids.
174ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdochclass GL_EXPORT SurfaceTextureTracker {
184ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch public:
194ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch  static SurfaceTextureTracker* GetInstance();
204ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch  static void InitInstance(SurfaceTextureTracker* tracker);
214ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
224ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch  virtual scoped_refptr<SurfaceTexture> AcquireSurfaceTexture(
234ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch      int primary_id,
244ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch      int secondary_id) = 0;
254ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
264ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch protected:
274ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch  virtual ~SurfaceTextureTracker() {}
284ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch};
294ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
304ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch}  // namespace gfx
314ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch
324ad1aa43a48567659193a298fad74f55e00b3dd9Ben Murdoch#endif  // UI_GL_ANDROID_SURFACE_TEXTURE_TRACKER_H_
33