| Index: blimp/client/compositor/blimp_compositor_android.h
|
| diff --git a/blimp/client/compositor/blimp_compositor_android.h b/blimp/client/compositor/blimp_compositor_android.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..12e47b22085be35ef8be7215b48899e3b43f5b30
|
| --- /dev/null
|
| +++ b/blimp/client/compositor/blimp_compositor_android.h
|
| @@ -0,0 +1,75 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef BLIMP_CLIENT_COMPOSITOR_BLIMP_COMPOSITOR_ANDROID_H_
|
| +#define BLIMP_CLIENT_COMPOSITOR_BLIMP_COMPOSITOR_ANDROID_H_
|
| +
|
| +#include "base/android/jni_android.h"
|
| +#include "base/macros.h"
|
| +#include "blimp/client/compositor/blimp_compositor.h"
|
| +#include "ui/gfx/geometry/size.h"
|
| +#include "ui/gfx/native_widget_types.h"
|
| +
|
| +namespace base {
|
| +class SingleThreadTaskRunner;
|
| +class Thread;
|
| +}
|
| +
|
| +namespace cc {
|
| +class LayerTreeHost;
|
| +}
|
| +
|
| +namespace blimp {
|
| +
|
| +// An Android specific version of the BlimpCompositor. This class builds a
|
| +// gfx::AcceleratedWidget out of an Android SurfaceView's surface.
|
| +class BlimpCompositorAndroid : public BlimpCompositor {
|
| + public:
|
| + // |real_size| is the total display area including system decorations (see
|
| + // android.view.Display.getRealSize()). |size| is the total display
|
| + // area not including system decorations (see android.view.Display.getSize()).
|
| + // |dp_to_px| is the scale factor that is required to convert from dp device
|
| + // pixels) to px.
|
| + static scoped_ptr<BlimpCompositorAndroid> Create(const gfx::Size& real_size,
|
| + const gfx::Size& size,
|
| + float dp_to_px);
|
| +
|
| + ~BlimpCompositorAndroid() override;
|
| +
|
| + // Takes a reference to the ANativeWindow backing |jsurface|, to use to render
|
| + // to, and releases any previously-held reference.
|
| + void SetSurface(JNIEnv* env, jobject jsurface);
|
| +
|
| + protected:
|
| + // |size| is the size of the display. |real_size_supported| determines
|
| + // whether or not this size is the real display size or the display size
|
| + // not including the system decorations. |dp_to_px| is the scale factor that
|
| + // is required to convert from dp (device pixels) to px.
|
| + BlimpCompositorAndroid(const gfx::Size& size,
|
| + bool real_size_supported,
|
| + float dp_to_px);
|
| +
|
| + // BlimpCompositor implementation.
|
| + gfx::AcceleratedWidget GetWindow() override;
|
| + void GenerateLayerTreeSettings(cc::LayerTreeSettings* settings);
|
| +
|
| + private:
|
| + // Used to determine tile size for the compositor's rastered tiles. For a
|
| + // device of width X height |portrait_width_| will be min(width, height) and
|
| + // |landscape_width_| will be max(width, height).
|
| + int portrait_width_;
|
| + int landscape_width_;
|
| +
|
| + // True if the |portrait_width_| and |landscape_width_| represent the device's
|
| + // physical dimensions, including any area occupied by system decorations.
|
| + bool real_size_supported_;
|
| +
|
| + gfx::AcceleratedWidget window_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(BlimpCompositorAndroid);
|
| +};
|
| +
|
| +} // namespace blimp
|
| +
|
| +#endif // BLIMP_CLIENT_COMPOSITOR_BLIMP_COMPOSITOR_ANDROID_H_
|
|
|