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 GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_H_
6#define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_H_
7
8#include "gpu/command_buffer/common/gles2_cmd_format.h"
9#include "gpu/command_buffer/common/gles2_cmd_utils.h"
10#include "gpu/command_buffer/service/buffer_manager.h"
11#include "gpu/command_buffer/service/cmd_buffer_engine.h"
12#include "gpu/command_buffer/service/context_group.h"
13#include "gpu/command_buffer/service/framebuffer_manager.h"
14#include "gpu/command_buffer/service/gles2_cmd_decoder.h"
15#include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
16#include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h"
17#include "gpu/command_buffer/service/program_manager.h"
18#include "gpu/command_buffer/service/query_manager.h"
19#include "gpu/command_buffer/service/renderbuffer_manager.h"
20#include "gpu/command_buffer/service/shader_manager.h"
21#include "gpu/command_buffer/service/test_helper.h"
22#include "gpu/command_buffer/service/texture_manager.h"
23#include "gpu/command_buffer/service/vertex_array_manager.h"
24#include "testing/gtest/include/gtest/gtest.h"
25#include "ui/gl/gl_context_stub_with_extensions.h"
26#include "ui/gl/gl_mock.h"
27#include "ui/gl/gl_surface_stub.h"
28
29namespace base {
30class CommandLine;
31}
32
33namespace gpu {
34namespace gles2 {
35
36class GLES2DecoderTest : public GLES2DecoderTestBase {
37 public:
38  GLES2DecoderTest() {}
39
40 protected:
41  void CheckReadPixelsOutOfRange(GLint in_read_x,
42                                 GLint in_read_y,
43                                 GLsizei in_read_width,
44                                 GLsizei in_read_height,
45                                 bool init);
46};
47
48class GLES2DecoderWithShaderTest : public GLES2DecoderWithShaderTestBase {
49 public:
50  GLES2DecoderWithShaderTest() : GLES2DecoderWithShaderTestBase() {}
51
52  void CheckTextureChangesMarkFBOAsNotComplete(bool bound_fbo);
53  void CheckRenderbufferChangesMarkFBOAsNotComplete(bool bound_fbo);
54};
55
56class GLES2DecoderRGBBackbufferTest : public GLES2DecoderWithShaderTest {
57 public:
58  GLES2DecoderRGBBackbufferTest() {}
59
60  virtual void SetUp();
61};
62
63class GLES2DecoderManualInitTest : public GLES2DecoderWithShaderTest {
64 public:
65  GLES2DecoderManualInitTest() {}
66
67  // Override default setup so nothing gets setup.
68  virtual void SetUp();
69
70  void DirtyStateMaskTest(GLuint color_bits,
71                          bool depth_mask,
72                          GLuint front_stencil_mask,
73                          GLuint back_stencil_mask);
74  void EnableDisableTest(GLenum cap, bool enable, bool expect_set);
75};
76
77}  // namespace gles2
78}  // namespace gpu
79
80#endif  // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_H_
81