mooreatv / MoLib

MooreaTv addons common libs
5 stars 4 forks source link

drawing apis #8

Open mooreatv opened 5 years ago

mooreatv commented 5 years ago

for curved lines/arcs/circles/bezier see

https://github.com/tomrus88/BlizzardInterfaceCode/blob/46d53f88664c14d16a702c0f68c1cd215d9efd14/Interface/AddOns/Blizzard_ArtifactUI/Blizzard_ArtifactPerks.lua

mooreatv commented 5 years ago

https://github.com/tomrus88/BlizzardInterfaceCode/blob/master/Interface/FrameXML/MixinUtil.lua

mooreatv commented 5 years ago

to beat the 16k textures limit look into

<TheDanW> wrote that awhile ago, but you might try having two child frames both with SetFlattensRenderLayers() and each of those child frames with your textures

see also https://gist.github.com/oratory/2970b452279f960d5797508b6897d0f4

mooreatv commented 5 years ago

WoWScrnShot_072219_170827

cool I can get any number of textures, 16k at a time in this demo, 346,540 split among 30 frames

mooreatv commented 5 years ago

more info

<MooreaTv>TheDanW- is there a "really flattens" option, that would remove the children and make the frame a single layer/object (a bitmap/texture) or any way from lua to programatically construct a texture/bitmap [peek/poke to set pixel] ? (re the fps drop which seems to be because of sending those individual textures)
<TheDanW>MooreaTv: nope
<TheDanW> you can use lines with vertex offsets to construct arbitrary triangles, that's probably the most control you can get with the current api
<MooreaTv>bummer for the making or modifying pixels/textures in game/lua. I'm not familiar with vertex offsets, I guess it's Texture:SetVertexOffset  only usage I found so far is https://www.townlong-yak.com/framexml/live/PowerDependencyLine.lua#200 and I can't quite tell.. what it does :)
<TheDanW>oh yeah, can just work on textures, it adjusts the vertex of the quad by whatever you pass in, you can address each vert in the quad separately, so you can make triangles to build mesh-like textures, which might reduce the need for so many textures in the first place
mooreatv commented 5 years ago

need to look at https://www.townlong-yak.com/framexml/live/Spline.lua (and Vector2D/Vector3D)