// Code generated by wlturbo-scanner. DO NOT EDIT. // Protocol: alpha_modifier_v1 // Source: alpha-modifier-v1.xml // Upstream protocol copyright and license: // Copyright © 2024 Xaver Hugl // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice (including the next // paragraph) shall be included in all copies or substantial portions of the // Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. package alphamodifier import ( cross_wl_surface "github.com/bnema/wlturbo/protocol/core" "github.com/bnema/wlturbo/wl" ) // ERROR_ALREADY_CONSTRUCTED is the error already_constructed value. const ERROR_ALREADY_CONSTRUCTED = 0 // ERROR_NO_SURFACE is the error no_surface value. const ERROR_NO_SURFACE = 0 // WpAlphaModifierInterface is the protocol interface name. const WpAlphaModifierInterface = "wp_alpha_modifier_v1" // WpAlphaModifier is the generated binding for wp_alpha_modifier_v1 version 1. type WpAlphaModifier struct { wl.BaseProxy } // NewWpAlphaModifier returns an unbound WpAlphaModifier. func NewWpAlphaModifier(ctx *wl.Context) *WpAlphaModifier { obj := &WpAlphaModifier{} obj.SetContext(ctx) ctx.Register(obj) return obj } // Destroy the alpha modifier manager. This doesn't destroy objects created with the manager. func (o *WpAlphaModifier) Destroy() error { if err := o.Context().RequestArgs(wl.Request{Proxy: o, Opcode: 0, Name: "wp_alpha_modifier_v1.destroy", Destructor: true}); err != nil { return err } return nil } // Create a new alpha modifier surface object associated with the given wl_surface. If there is already such an object associated with the wl_surface, the already_constructed error will be raised. func (o *WpAlphaModifier) GetSurface(surface *cross_wl_surface.Surface) (*WpAlphaModifierSurface, error) { var arg1 wl.Object if surface != nil { arg1 = surface } child := &WpAlphaModifierSurface{} child.SetContext(o.Context()) if err := o.Context().RequestArgs(wl.Request{Proxy: o, Opcode: 1, Name: "wp_alpha_modifier_v1.get_surface", Child: child}, wl.ArgObject(child), wl.ArgObject(arg1)); err != nil { return nil, err } return child, nil } // EventSignature returns the declared event argument types in wire order. func (o *WpAlphaModifier) EventSignature(opcode uint16) (string, bool) { switch opcode { default: return "", false } } // Dispatch decodes one event on wp_alpha_modifier_v1 and calls the registered handlers. func (o *WpAlphaModifier) Dispatch(event *wl.Event) { switch event.Opcode { default: } } // WpAlphaModifierSurfaceInterface is the protocol interface name. const WpAlphaModifierSurfaceInterface = "wp_alpha_modifier_surface_v1" // WpAlphaModifierSurface is the generated binding for wp_alpha_modifier_surface_v1 version 1. type WpAlphaModifierSurface struct { wl.BaseProxy } // NewWpAlphaModifierSurface returns an unbound WpAlphaModifierSurface. func NewWpAlphaModifierSurface(ctx *wl.Context) *WpAlphaModifierSurface { obj := &WpAlphaModifierSurface{} obj.SetContext(ctx) ctx.Register(obj) return obj } // This destroys the object, and is equivalent to set_multiplier with a value of UINT32_MAX, with the same double-buffered semantics as set_multiplier. func (o *WpAlphaModifierSurface) Destroy() error { if err := o.Context().RequestArgs(wl.Request{Proxy: o, Opcode: 0, Name: "wp_alpha_modifier_surface_v1.destroy", Destructor: true}); err != nil { return err } return nil } // Sets the alpha multiplier for the surface. The alpha multiplier is double-buffered state, see wl_surface.commit for details. This factor is applied in the compositor's blending space, as an additional step after the processing of per-pixel alpha values for the wl_surface. The exact meaning of the factor is thus undefined, unless the blending space is specified in a different extension. This multiplier is applied even if the buffer attached to the wl_surface doesn't have an alpha channel; in that case an alpha value of one is used instead. Zero means completely transparent, UINT32_MAX means completely opaque. func (o *WpAlphaModifierSurface) SetMultiplier(factor uint32) error { if err := o.Context().RequestArgs(wl.Request{Proxy: o, Opcode: 1, Name: "wp_alpha_modifier_surface_v1.set_multiplier"}, wl.ArgUint(factor)); err != nil { return err } return nil } // EventSignature returns the declared event argument types in wire order. func (o *WpAlphaModifierSurface) EventSignature(opcode uint16) (string, bool) { switch opcode { default: return "", false } } // Dispatch decodes one event on wp_alpha_modifier_surface_v1 and calls the registered handlers. func (o *WpAlphaModifierSurface) Dispatch(event *wl.Event) { switch event.Opcode { default: } }