blob: ef8a0d413a2ae148602a10bef90d9a08db0f7dc1 [file] [log] [blame]
// 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));
}