mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
43 lines
1.7 KiB
C++
43 lines
1.7 KiB
C++
// 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));
|
|
}
|