Codea 1.5.1 (Beta 6)


  • Added float support to mesh custom vertex attributes


  • Sprites and images now load in the same orientation. This will affect your shader code if you were flipping your vertical texture coordinate! Things should be much cleaner when it comes to shaders, meshes, and textures from sprites/images (thanks @mpilgrem)
  • Fixed bug where pressing the view mode button didn’t trigger a change in return value from displayMode()
  • textSize() function now takes into account newlines, even if textWrapWidth is not set
  • Fixed complex rendering bug that involved bad caching of model view matrices. This caused some issues when using setContext() in setup().
  • Fixed an issue that caused raster sprites to over-cache when resized with the sprite() call width/height parameters
  • All built-in shaders no longer use the 1.0 - texCoord.y correction
  • Stops tables defined in arguments from having their separated values counted as separate arguments for the purposes of help markers.


  • Added Russian Getting Started docs
  • Fixed Romanian Shaders & Mesh chapter title getting cut off


  • Added a function for resuming stopped tweens. A simple function, not public yet because it lacks documentation and testing.

A big focus on bug fixes. If all is well in testing, this will be submitted as 1.5.1.

I see that setContext still doesn’t have a depth buffer.

Also, it seems that setContext(image) sets the projection matrix to something. If by design, this should probably be documented.

Amusingly, the “Made in Codea” graphic on recordings is now back to front (or upside down).

Hah, thanks @Andrew_Stacey

setContext() has to change the orthographic projection to fit the new viewport size – this is what allows rendering to textures larger than the screen resolution. You can set it yourself after calling setContext(image) if you want to do something advanced. We will document it.

Yes, I’m having trouble getting setContext to support a depth buffer (that was actually the cause of @Jmv38’s issues in 1.5).

Hello @Simeon. Is triple-touch to exit in FULLSCREEN_NO_BUTTONS re-enabled in beta 1.5.1(4)?

.@mpilgrem it will be back in the next build (5).

.@Simeon Following on from, perhaps the tween library files should have sensible first lines to aid with debugging.

Just had the editor go blank on me. Came back after scrolling back and forth in the code.

Also, I find the selection tool a little slow. If I select some text, say a word with a single tap, and then press “delete” then it takes a moment before it actually deletes the text.

.@Andrew_Stacey yes, I’ll change the first line for now. In the future the tween library should do some more validation and print errors for common misuses.

Sorry about the pauses in the editor. I will be rebuilding it from scratch soon, and hope to make it a lot faster.

Beta 5 is out, minor fixes along with some colour scheme adjustments for the dark theme in editor (Search and Function browser).

This release also brings back triple-tap-three-fingers to bring the buttons up in fullscreen no buttons mode.

This release has been submitted to the store, pending any major issues.

Calling stopRecording() from within a program doesn’t bring up the “Save video” dialog.

Also, when recording (started with startRecording() if that makes a difference) then I had a bug in my code which crashed the program but because it was recording then it didn’t actually exit the program (I only discovered that there was a bug when I tried the same thing without recording). I had to kill Codea to recover.

Recording in portrait mode, the “Made in Codea” is not fully on screen (the “a” is off-screen). This is with an iPad 4.

That’s strange, testing on a retina iPad (portrait) I had the made with Codea on screen. Is it possible to get a screenshot of the error, @Andrew_Stacey? Edit: Never mind I managed to reproduce. Will fix.

I’ll fix stopRecording so that it brings up the save panel. Will look into having a stopRecording called if the code crashes as well.

.@Simeon: screenshot tweeted … oh, didn’t see your edit.

Thanks Andrew. I’ve fixed the bugs, and I’ve made it so that if a runtime error occurs it stops recording.

At some point, it would be nice to have saveRecording take a parameter so that recordings could be saved or aborted using controls better integrated into the running app.

Hello @Simeon. The default ‘create a shader’ in beta 1.5.1(6) still has:

vTexCoord = vec2(texCoord.x, 1.0 - texCoord.y);

(update) and perhaps the fragment shader should have the line:

 lowp vec4 col = texture2D( texture, vTexCoord ) * vColor;

Thanks @mpilgrem, I’ll fix it.

If it is not too late for version 1.5.1, the ‘displayMode’ entry in the ‘Display’ chapter of the in-app reference could document:

returns The current display mode if called with no arguments. Otherwise this function returns nothing.

I’ve added that return type for post-1.5.1, thanks @mpilgrem.

If I ‘Select All’ and copy-paste text from the Editor into an email in Mail, the text is white on a white background. Is that a Mail problem or a Codea one?