ProtectedgraphicalLazy horizontal rendering (RenderSingleHorizontalStaffline): draw only graphical objects whose right edge x (in OSMD units) lies in (LazyDrawFromXUnits, LazyDrawToXUnits] -- the measures and spanning elements that first entered the drawn frontier this batch. ±Infinity (default) draws everything. Set by OpenSheetMusicDisplay.renderAppendGrowingHorizontal() per batch; reset after.
Lazy rendering: when >= 0, drawPage() draws only the systems of (the first) page whose index is within [LazyDrawSystemsFromIndex, LazyDrawSystemsToIndexExcl), leaving the already-drawn systems above untouched in the shared backend. -1 (default) draws every system. Set by OpenSheetMusicDisplay.renderAppend() before each appended batch; reset to -1 after.
Lazy horizontal rendering: when true, drawLabel() ignores the x-window gate. Scoped (set/restored) to the page-label loop in drawPage(), since those labels span the full page width and must all be drawn even though their left edges lie behind the final batch's frontier.
Lazy horizontal rendering: when true, drawPage() skips the page-level labels (title/credits). They are drawn once, on the final batch, when the page has reached its full width and they sit at their final (re-centered) positions -- drawing them earlier would place them under a still-growing page.
ProtectedrulesProtectedtextProtectedleadProtectedactivateProtectedapplyProtectedapplyConverts a rectangle from unit to pixel space.
ProtectedapplyConverts a distance from unit to pixel space.
the distance in units
the distance in pixels
ProtecteddrawProtecteddrawProtecteddrawDraws a continuous dynamic expression (wedges) to the canvas
ProtecteddrawDraw all dashes to the canvas
Array of lyric dashes to be drawn
ProtecteddrawProtecteddrawProtecteddrawProtecteddrawDraws an instantaneous dynamic expression (p, pp, f, ff, ...) to the canvas
GraphicalInstantaneousDynamicExpression to be drawn
ProtecteddrawProtecteddrawDraws a line in the current backend. Only usable while pages are drawn sequentially, because backend reference is updated in that process. To add your own lines after rendering, use DrawOverlayLine.
ProtecteddrawProtecteddrawProtecteddrawProtecteddrawProtecteddrawLets a user/developer draw an overlay line on the score. Use this instead of drawLine, which is for OSMD internally only. The MusicPage has to be specified, because each page and Vexflow backend has its own relative coordinates. (the AbsolutePosition of a GraphicalNote is relative to its backend) To get a MusicPage, use GraphicalNote.ParentMusicPage.
Optionalid: stringProtecteddrawOptionalid: stringOptionalcolor: stringProtecteddrawProtecteddrawProtecteddrawProtecteddrawProtecteddrawProtecteddrawProtecteddrawProtecteddrawProtecteddrawProtecteddrawProtecteddrawDraws the strokes ("tremolo beams") of tremolos between two notes in this measure, e.g. two alternating half notes with 3 strokes between them, often seen in orchestral string parts. (Vexflow doesn't support these tremolos, so we draw them ourselves here.) Also updates the SkyLine/BottomLine where the strokes exceed it.
ProtecteddrawProtectedgetProtectedgetProtectedisProtectedlazyLazy horizontal rendering: whether an object with this bounding box falls in the current draw x-window (its right edge first entered the drawn frontier this batch). True when not lazy-horizontal.
ProtectedlazyLazy horizontal rendering: whether to draw the once-only left-edge system elements (instrument braces and group brackets). True for non-lazy and for the first lazy-horizontal batch, which owns the left edge (LazyDrawFromXUnits is -Infinity); false for continuation batches, so a single-system score's brace isn't redrawn on top of itself every batch. (Vertical lazy keeps the x-window at ±Infinity and draws each system's brace once via the per-system gate, so this stays true there.)
ProtectedlazyProtectedrenderRenders a Label to the screen (e.g. Title, composer..)
holds the label string, the text height in units and the font parameters
is the current rendering layer. There are many layers on top of each other to which can be rendered. Not needed for now.
Not needed for now.
Not needed for now.
the position of the lower left corner of the text in screen coordinates
ProtectedrenderRenders a rectangle with the given style to the screen. It is given in screen coordinates.
the rect in screen coordinates
is the current rendering layer. There are many layers on top of each other to which can be rendered. Not needed for now.
the style id
alpha value between 0 and 1
Protectedrender
Draw a [[GraphicalMusicSheet]] (through the .drawSheet method)
The drawing is implemented with a top-down approach, starting from a music sheet, going through pages, systems, staffs... ... and ending in notes, beams, accidentals and other symbols. It's worth to say, that this class just draws the symbols and graphical elements, using the positions that have been computed before. But in any case, some of these previous positioning algorithms need the sizes of the concrete symbols (NoteHeads, sharps, flats, keys...). Therefore, there are some static functions on the 'Bounding Boxes' section used to compute these symbol boxes at the beginning for the later use in positioning algorithms.
This class also includes the resizing and positioning of the symbols due to user interaction like zooming or panning.