Quick Links: Gideros Home | Download Gideros | Developer Guide
Quad and Triangle primatives
  • techdojotechdojo +1 -1 (+1 / -1 )
    Guru
    I'd like to request a simple Quad and or Triangle primitive to be added to the rendering functions.
    I realise that you can do the same with shapes (but not knowing how shapes are processed internally) I think the ability to draw an arbitrary quad or triangle from a simple table of 4 (or 3) coordinates would be really useful.

    In theory it should also be possible to specify vertex colour values (RGBA) so that gradients can be drawn easily as well.

    something else I was wondering as well - would it be possible to change the vertex coordinates after the object has been created (I was thinking of this in respect to lines / shapes initially), but if I want to animate a box or triangle (or polyline) during an "onEnterFrame" event, it seems really wasteful to have to recreate the object every time (plus it means extra work for the GC when it kicks in).

    My $0.02

    Jon...

    Likes: MikeHart

    Dislikes: amaximov

    WhiteTree Games - Home, home on the web, where the bits and bytes they do play!
    #MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill
  • techdojo said:


    something else I was wondering as well - would it be possible to change the vertex coordinates after the object has been created (I was thinking of this in respect to lines / shapes initially), but if I want to animate a box or triangle (or polyline) during an "onEnterFrame" event, it seems really wasteful to have to recreate the object every time (plus it means extra work for the GC when it kicks in).



    I know you aren't asking for a shape solution, but you can do some of what you want with shapes without creating new shapes each time you change vertices.

    The following function draws a polygon from a list of vertices (doesn't do gradients though):
    function Shape:drawPoly(points)
    self:beginPath()
    for i,p in ipairs(points) do
    self:lineTo(p[1], p[2])
    end
    self:closePath()
    self:endPath()
    end


    And here's an example of how to change points w/o creating new object new shapes by using Shape:clear():
    local shape = Shape.new()
    stage:addChild(shape)
     
    local points = { {100,100}, {200,100}, {200,200}, {150,250},{100,200} }
    shape:drawPoly(points)
     
    function onEnterFrame()
    for i,p in ipairs(points) do
    p[1] = p[1] + math.random(-20,20)/20
    p[2] = p[2] + math.random(-20,30)/20
    end
    shape:clear()
    shape:setLineStyle(3)
    shape:setFillStyle(Shape.SOLID, 0x0000cc, 0.5)
    shape:drawPoly(points)
    end
     
    shape:addEventListener(Event.ENTER_FRAME, onEnterFrame)
  • atilimatilim +1 -1 (+3 / -0 )
    Staff
    As you know there are 2 types of fill styles: Shape.SOLID and Shape.TEXTURE. Also I'm planning to add Shape.GRADIENT.

    Likes: ndoss, OZApps, techdojo

  • jack0088jack0088 +1 -1 (+2 / -0 )
    Member
    @techdojo I plan to release my library very soon. you'll be able to draw everything through simple calls - even bezier curves. you'll see a thread on this.
    @atilim would be veryyy neat! I already have a use for this!

    Likes: ndoss, techdojo

    Owltwins. Smart design and creative code.
    Ā»Gideros IllustratorĀ« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
  • Thanks for all the responses, @ndoss - I thought shape:clear() would do the job I just haven't had the time to experiment yet, the "beer" SDK also has "polyline" support which I was using to recreate the old windows "mystify" screen saver - however I was really disappointed when I discovered that there was no way to adjust vertices without having to go through all the headache and waste of allocating a whole bunch of new objects every frame (plus not to mention battering the garbage collector).

    Also I "suspect" (but have never been able to prove) that in the other SDK - calls to generate primitives actually end up being rendered to textures and then blit as normal (draw a rotating line and watch what happens to the amount of video memory used when the line get's to 45 deg).

    @jack0888 - sounds great, I'll look forward to seeing it.
    WhiteTree Games - Home, home on the web, where the bits and bytes they do play!
    #MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook Sign In with Google Sign In with OpenID

In this Discussion

Top Posters