mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 15:45:38 +00:00
918a5da308
...interface{} requires constructing a slice, which is slow.
This cuts about 100ns from RRect and Border benchmark.
Signed-off-by: Egon Elbre <egonelbre@gmail.com>
32 lines
584 B
Go
32 lines
584 B
Go
// SPDX-License-Identifier: Unlicense OR MIT
|
|
|
|
// Package profiles provides access to rendering
|
|
// profiles.
|
|
package profile
|
|
|
|
import (
|
|
"gioui.org/internal/opconst"
|
|
"gioui.org/io/event"
|
|
"gioui.org/op"
|
|
)
|
|
|
|
// Op registers a handler for receiving
|
|
// Events.
|
|
type Op struct {
|
|
Tag event.Tag
|
|
}
|
|
|
|
// Event contains profile data from a single
|
|
// rendered frame.
|
|
type Event struct {
|
|
// Timings. Very likely to change.
|
|
Timings string
|
|
}
|
|
|
|
func (p Op) Add(o *op.Ops) {
|
|
data := o.Write1(opconst.TypeProfileLen, p.Tag)
|
|
data[0] = byte(opconst.TypeProfile)
|
|
}
|
|
|
|
func (p Event) ImplementsEvent() {}
|