test_texture.h revision 0f1bc08d4cfcc34181b0b5cbf065c40f687bf740
14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file.
44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
50f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#ifndef CC_TEST_TEST_TEXTURE_H_
60f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#define CC_TEST_TEST_TEXTURE_H_
70f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/memory/ref_counted.h"
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/memory/scoped_ptr.h"
104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "cc/resources/resource_format.h"
114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
120f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#include "ui/gfx/size.h"
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace cc {
154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
160f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)size_t TextureSizeBytes(gfx::Size size, ResourceFormat format);
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
180f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)struct TestTexture : public base::RefCounted<TestTexture> {
194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  TestTexture();
204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  void Reallocate(gfx::Size size, ResourceFormat format);
224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  gfx::Size size;
244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  ResourceFormat format;
254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  scoped_ptr<uint8_t[]> data;
264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // TODO(mvujovic): Replace this with a hash map of texture parameter names
284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // and values, which can hold this filter parameter value and more.
294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  WebKit::WGC3Denum filter;
304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) private:
324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  friend class base::RefCounted<TestTexture>;
334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  ~TestTexture();
344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)};
354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}  // namespace cc
374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
380f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#endif  // CC_TEST_TEST_TEXTURE_H_
39