Flutter Linux Embedder
fl_framebuffer_test.cc
Go to the documentation of this file.
1 // Copyright 2013 The Flutter 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 #include "gtest/gtest.h"
6 
8 #include "flutter/shell/platform/linux/testing/mock_epoxy.h"
9 
10 TEST(FlFramebufferTest, HasDepthStencil) {
11  ::testing::NiceMock<flutter::testing::MockEpoxy> epoxy;
12 
13  g_autoptr(FlFramebuffer) framebuffer =
14  fl_framebuffer_new(GL_RGB, 100, 100, FALSE);
15 
16  GLint depth_type = GL_NONE;
17  glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
18  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
19  &depth_type);
20  EXPECT_NE(depth_type, GL_NONE);
21 
22  GLint stencil_type = GL_NONE;
23  glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
24  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
25  &stencil_type);
26  EXPECT_NE(stencil_type, GL_NONE);
27 }
28 
29 TEST(FlFramebufferTest, ResourcesRemoved) {
30  ::testing::NiceMock<flutter::testing::MockEpoxy> epoxy;
31 
32  EXPECT_CALL(epoxy, glGenFramebuffers);
33  EXPECT_CALL(epoxy, glGenTextures);
34  EXPECT_CALL(epoxy, glGenRenderbuffers);
35  FlFramebuffer* framebuffer = fl_framebuffer_new(GL_RGB, 100, 100, FALSE);
36 
37  EXPECT_CALL(epoxy, glDeleteFramebuffers);
38  EXPECT_CALL(epoxy, glDeleteTextures);
39  EXPECT_CALL(epoxy, glDeleteRenderbuffers);
40  g_object_unref(framebuffer);
41 }
42 
43 TEST(FlFramebufferTest, Sibling) {
44  ::testing::NiceMock<flutter::testing::MockEpoxy> epoxy;
45 
46  EXPECT_CALL(epoxy, eglCreateImage);
47  g_autoptr(FlFramebuffer) framebuffer =
48  fl_framebuffer_new(GL_RGB, 100, 100, TRUE);
49  g_autoptr(FlFramebuffer) sibling = fl_framebuffer_create_sibling(framebuffer);
50 }
g_autoptr(GMutexLocker) locker
return TRUE
FlFramebuffer * fl_framebuffer_create_sibling(FlFramebuffer *self)
FlFramebuffer * fl_framebuffer_new(GLint format, size_t width, size_t height, gboolean shareable)
TEST(FlFramebufferTest, HasDepthStencil)