mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This patch starts down the process of cleaning up the dart:ui API. In this approach, we use Dart code to specify the interface instead of IDL. The code in this patch is far from complete. It's just a sketch to see how this sort of approach might work.
39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
// Copyright 2015 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
{# The warning below applies to the code generated by this template, not this file. #}
|
|
// WARNING: Do not edit - generated code.
|
|
|
|
#include "gen/sky/bindings/DartGlobal.h"
|
|
|
|
{% for interface in interfaces %}
|
|
#include "gen/sky/bindings/Dart{{interface.name}}.h"
|
|
{% endfor %}
|
|
|
|
namespace blink {
|
|
|
|
Dart_NativeFunction skySnapshotResolver(Dart_Handle name, int argumentCount, bool* autoSetupScope)
|
|
{
|
|
{% for interface in interfaces %}
|
|
{% if interface.has_resolver %}
|
|
if (Dart_NativeFunction func = Dart{{interface.name}}::Resolver(name, argumentCount, autoSetupScope))
|
|
return func;
|
|
{% endif %}
|
|
{% endfor %}
|
|
return 0;
|
|
}
|
|
|
|
const uint8_t* skySnapshotSymbolizer(Dart_NativeFunction nf)
|
|
{
|
|
{% for interface in interfaces %}
|
|
{% if interface.has_resolver %}
|
|
if (const uint8_t* r = Dart{{interface.name}}::Symbolizer(nf))
|
|
return r;
|
|
{% endif %}
|
|
{% endfor %}
|
|
return 0;
|
|
}
|
|
|
|
} // namespace blink
|