Ashley's Forum Posts

  • 'Call function after delay' only checks if the delay has expired at the end of the event list. So if you're running at 100fps, it'll only check to see if the delay has expired every ~10ms, so timings less than that don't make much sense. It's perfectly safe to use smaller values, they'll just still be executed after about 10ms. Generally all timing things in Construct are synchronised to the framerate so your resolution will be about (1000ms / framerate) milliseconds.

  • Construct still uses the August 2008 version of DirectX, so as long as they've finished that, it'll work.

  • Good point Mr. Wolf, to properly calculate VRAM, the number of bytes is w x h x 4. So 512 x 512 x 4 is 1048576, or 1mb.

  • I edited my post to include an answer about VRAM.

  • Oh right, it shows black bars when the layout is smaller than the window. Those black bars are drawn as well, and each weighs up to about the same performance impact as the tiled background (a four vertex quad). In such an intensive test, they're bound to show up as making a difference. Always keep the layout bigger than the window if you want to keep it a fair test.

    Edit:

    [quote:7mikr2h8]Edit: Also just noticed that it suddenly starts to need 4 Megs of VRAM in the second sample - why is that? Sort-of drawing the application "background" and the layout as different things or something like that?

    When the layout is smaller than the window, it draws to an offscreen surface first, to ensure nothing is drawn outside the viewable area. It's this offscreen surface you're seeing VRAM usage for. It's also going to further reduce performance copying this offscreen surface to the main window, which also explains the FPS dip.

    In short, these performance/VRAM usages probably won't make much sense unless you know how the engine works.

  • I can't reproduce any performance difference by changing the layout size. The layout size is pretty much just used to enforce scrolling limits - it doesn't have much to do with rendering, so I'm not sure why you'd see a difference there.

  • Great job. I'll credit you in the changelog.

  • I don't know, isn't that a question for the Wine developers?

  • Nice tool

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Your 16x16 .cap actually uses a 16x18 texture That's not power of two, so power of two rendering is disabled! If you resize the texture to actually be 16x16, the framerate goes up.

    Just to clarify some of the comments here, in practice the framerate for tiling power-of-two textures (16x16, 128x128...) should be roughly the same. Power-of-two textures can be drawn more efficiently - there's basically a single command which is "tile texture N times". That doesn't work for non-power-of-two textures though, so instead for each and every tile Construct has to issue a separate "draw this texture once here" command. That introduces a very large overhead of command data going to the GPU which is the main cause of slowdown when many tiles are visible on-screen.

  • Outline should work properly if you turn off text antialiasing... but then all text will appear kind of jaggy.

  • Nice find, thank you very much! Not sure how that code ended up there since everywhere else I've been pretty careful about use of SSE2 instructions! That would explain everything since that code was introduced with the new renderer (0.99).

    I've simply changed it to call the non-SSE2 version since I'm not sure the SSE2 version actually ever ran faster anyway.

  • Is it really that useful? All you need is a subevent - compare UID - then you do whatever you need in that event, and it affects the instance with the matched UID.

  • Have a look at these two functions:

    	virtual void SerializeObjectPtr(CRunObject*& obj, bin& ar) = 0;
    	virtual void SerializeObjectType(CRunObjType*& pType, bin& ar) = 0;[/code:1jsz36mu]
  • Ah, it was 91 seconds, didn't realise (I don't think I ever trigger it because being an admin disables it). I set it to 30 seconds. Hopefully that's more convenient.

    Edit: moved to Open Topic