// Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "flutter/shell/platform/linux/testing/mock_renderer.h" struct _FlMockRenderer { FlRenderer parent_instance; }; G_DEFINE_TYPE(FlMockRenderer, fl_mock_renderer, fl_renderer_get_type()) // Implements FlRenderer::create_display. static EGLDisplay fl_mock_renderer_create_display(FlRenderer* renderer) { return eglGetDisplay(EGL_DEFAULT_DISPLAY); } // Implements FlRenderer::create_surfaces. static gboolean fl_mock_renderer_create_surfaces(FlRenderer* renderer, GtkWidget* widget, EGLDisplay display, EGLConfig config, EGLSurface* visible, EGLSurface* resource, GError** error) { *visible = eglCreateWindowSurface(display, config, 0, nullptr); const EGLint attribs[] = {EGL_WIDTH, 1, EGL_HEIGHT, 1, EGL_NONE}; *resource = eglCreatePbufferSurface(display, config, attribs); return TRUE; } static void fl_mock_renderer_class_init(FlMockRendererClass* klass) { FL_RENDERER_CLASS(klass)->create_display = fl_mock_renderer_create_display; FL_RENDERER_CLASS(klass)->create_surfaces = fl_mock_renderer_create_surfaces; } static void fl_mock_renderer_init(FlMockRenderer* self) {} // Creates a stub renderer FlMockRenderer* fl_mock_renderer_new() { return FL_MOCK_RENDERER(g_object_new(fl_mock_renderer_get_type(), nullptr)); }