Howdy, Stranger!

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

Codea 2.8.1 (166) & (167)

dave1707dave1707 Mod
edited July 17 in Beta Posts: 7,923

When Codea starts up, the project list is at an angle and Reference, Assets, Shader Lab, and Air Code is showing on the left. It's like Codea is part way between the 2 screens.

Comments

  • dave1707dave1707 Mod
    Posts: 7,923

    The multiline comment error works fine.

  • SimeonSimeon Admin Mod
    Posts: 5,054

    @dave1707 thank you for spotting that, I was messing with the initial layout code and broke it in 166. Sorry about that!

  • edited July 17 Posts: 1,400

    @Simeon - just loaded 167. Not sure if it's just a feature of this version but I have been having problems with dependencies retained after closing the project - when using the new editor. Dependency selection doesn't appear to be retained. When loading exisiting projects in, that already have dependencies from the old editor, they are present when loaded. I like the way the dependencies selected rise to the top of the list, have you lost the retained link in introducing that?

  • dave1707dave1707 Mod
    Posts: 7,923

    @Simeon The Codea startup problem is fixed in version 167.

  • dave1707dave1707 Mod
    edited July 17 Posts: 7,923

    @Simeon (version 167) Sometime when I close a project, I see the project list flash just before the project closes. It's as if both the project and project list are being shown at the same time just for an instant. It doesn't do it on every project.

    PS. I tried it again about an hour later and I couldn't get it to mess up.

  • SimeonSimeon Admin Mod
    Posts: 5,054

    @dave1707 thank you. I'm experimenting with completely removing the custom blur code on the project browser if I can get to something that looks as good.

  • dave1707dave1707 Mod
    Posts: 7,923

    @Simeon I've tried several more times to see if I can get the project list to flash when closing a project, but I haven't been able to cause it. I'm not sure what state I had Codea in when it happened the first time. I guess it's just a timing issue.

  • edited July 19 Posts: 1,400

    @Simeon - just playing around with making seamless tiles and loaded one of @Ignatz routines to play with. Hit the bomb out of Codea again using 167. Adding collectgarbage() seems to resolve the problem. Re-printed @Ignatz’s code for you to check. Note uses a shader:


    displayMode(OVERLAY) function setup() path = "Dropbox:Tiles/" images={ path.."canvas6BO", path.."Scolour2" } parameter.integer("Image",1,#images,1,function(a) CreateSeamless(images[a]) end) parameter.number("Scale",0,100,0,function() img2=CreateSeamless(images[Image]) end) parameter.boolean("scroll",false) end function CreateSeamless(img) if not Scale then return end if type(img)=="string" then img=readImage(img) end local w,h=img.width,img.height local m=mesh() m:addRect(w/2,h/2,w,h) m.shader=shader(SeamlessShader.v,SeamlessShader.f) m.shader.texture=img m.shader.p=Scale local i=image(w,h) setContext(i) m:draw() setContext() mm=setupTiles(i,WIDTH,HEIGHT) mm.pos=vec2(0,0) end function setupTiles(img,w,h) local m=mesh() m.texture=img local v,t={},{} --now calculate how many times the image is used along the x and z axes --use these as the maximum texture settings --the shader will just use the fractional part of the texture mapping --(the shader only requires one line to change, to do this) local x1,x2,y1,y2=0,w,0,h local tw,th=w/img.width,h/img.height local tx1,tx2,ty1,ty2=0,tw,0,th v[1]=vec3(x1,y1,0) t[1]=vec2(tx1,ty1) v[2]=vec3(x2,y1,0) t[2]=vec2(tx2,ty1) v[3]=vec3(x2,y2,0) t[3]=vec2(tx2,ty2) v[4]=vec3(x1,y2,0) t[4]=vec2(tx1,ty2) v[5]=vec3(x1,y1,0) t[5]=vec2(tx1,ty1) v[6]=vec3(x2,y2,0) t[6]=vec2(tx2,ty2) m.vertices=v m.texCoords=t m.shader=shader(TileShader.vertexShader,TileShader.fragmentShader) m:setColors(color(255)) m.t=t m.w,m.h=img.width,img.height return m end function AdjustTilePosition(x,y) local b=mm:buffer("texCoord") for i=1,6 do mm.t[i]=mm.t[i]+vec2(x/mm.w,y/mm.h) b[i]=mm.t[i] end end function draw() background(220) if scroll then AdjustTilePosition(2,2) end mm:draw() -- collectgarbage() end

    Have you identified the problem? Just wondered if it may be concerned with a shader issue. The images I was tiling were all about 512x512 pixels in black an white and colour. Need to add your own similar images. Shader code below:


    SeamlessShader = { v = [[ uniform mat4 modelViewProjection; attribute vec4 position; attribute vec4 color; attribute vec2 texCoord; varying lowp vec4 vColor; varying highp vec2 vTexCoord; void main() { vColor = color; vTexCoord = texCoord; gl_Position = modelViewProjection * position; } ]], f = [[ precision highp float; uniform lowp sampler2D texture; uniform float p; varying lowp vec4 vColor; varying highp vec2 vTexCoord; void main() { //create scaled copy of texture position //interpolate vec4 A = texture2D(texture,vTexCoord); vec4 B = texture2D(texture,vec2(1.0-vTexCoord.x,vTexCoord.y)); vec4 C = texture2D(texture,vec2(vTexCoord.x,1.0-vTexCoord.y)); vec4 D = texture2D(texture,vec2(1.0-vTexCoord.x,1.0-vTexCoord.y)); float xx = 1.0 - pow(vTexCoord.x,p); float yy = 1.0 - pow(vTexCoord.y,p); vec4 AB = mix(A,B,xx); vec4 CD = mix(C,D,xx); vec4 u = mix(AB,CD,yy); u.w=1.0; gl_FragColor = u; } ]]} TileShader = { vertexShader = [[ // // A basic vertex shader // //This is the current model * view * projection matrix // Codea sets it automatically uniform mat4 modelViewProjection; //This is the current mesh vertex position, color and tex coord // Set automatically attribute vec4 position; attribute vec4 color; attribute vec2 texCoord; //This is an output variable that will be passed to the fragment shader varying lowp vec4 vColor; varying highp vec2 vTexCoord; uniform float flip; //$$$$ void main() { //Pass the mesh color to the fragment shader vColor = color; vTexCoord = texCoord; //Multiply the vertex position by our combined transform gl_Position = modelViewProjection * position; } ]], fragmentShader = [[ // // A basic fragment shader // //Default precision qualifier precision highp float; //This represents the current texture on the mesh uniform lowp sampler2D texture; //The interpolated vertex color for this fragment varying lowp vec4 vColor; //The interpolated texture coordinate for this fragment varying highp vec2 vTexCoord; void main() { lowp vec4 col = texture2D( texture, vec2(mod(vTexCoord.x,1.0), mod(vTexCoord.y,1.0))); gl_FragColor = col; } ]] }

    Still use a lot of @Ignatz routines, his website is one of my regular checks on new project approaches.

  • dave1707dave1707 Mod
    edited July 19 Posts: 7,923

    @Bri_G I tried your above code and Codea never crashed for me. This was on my 16GB iPad Air. How long did it run before it crashed for you. I used the below code for my images. The first one is 128x128, the second is 512x512 and the third is 1024x1024. I also did the collectgarbage('count') and watched the memory size rise and then fall with no problems.

    function setup()
        --parameter.watch("collectgarbage('count')")
        images={"Blocks:Brick Grey","Surfaces:Desert Cliff Color","Surfaces:Basic Bricks Roughness"}
        parameter.integer("Image",1,#images,1,function(a) CreateSeamless(images[a]) end)
        parameter.number("Scale",0,100,0,function() img2=CreateSeamless(images[Image]) end)
        parameter.boolean("scroll",false)
    end
    
  • edited July 20 Posts: 1,400

    @dave1707 - Thanks for the feedback, was going to apologise as I have had problem with my finger touching before in the top corner on parameters. Tried it out again and looked like it was the finger issue again. Then I tried selecting the image parameter and keeping my finger on the screen and scrolling through the images backwards and forwards repeatedly and it crashed. When I did it before it crashed quicker - timing seems inconsistent. Could be down to the speed of the finger movement. The editor I was using was the new editor. I may have to record a video to show this. Bombs straight into iPad app screen .

    Edit: wonder if this is a feature of. Dropbox downloading with rapid selection of images?

    Edit2: synced Dropbox and it still happened - possible rapid demand on graphic transfer is too fast, haven’t tried the memory logging - will do next.

  • edited July 20 Posts: 1,400

    @dave1707 - I think this may be occurring due to timing - the mesh is updated with each call from the parameter input and if complete will display, but if the mesh update overlaps the screen update then there will be a clash. Does Codea allow for that?

    Edit: happens with the second parameter calling the shader, and it happens faster if you slide backwards and forwards.

    Edit2: Ran with your code in setup and bombing still happened, but on the scale parameter option I couldn’t get it to crash with your code.

    Wonder if there is a massive memory usage in between screen cycles a crash may occur?

  • dave1707dave1707 Mod
    Posts: 7,923

    @Bri_G I tried the slider to select different images about one per second and Codea eventually crashed. I tried it again with the memory watch and the memory value wasn't a problem. It stayed fairly low even when it crashed.

  • edited October 26 Posts: 1,400
    @dave1707 - pheeew, begining to think I was hitting my pad with static!!!! What source did you use for the images?

    This could easily have been present for some time. Hope @Simeon can reproduce.
  • dave1707dave1707 Mod
    Posts: 7,923

    @Bri_G I mostly just use the build in Codea images. If I have other images, I put them in the Codea Dropbox folder. I don't like to use Files because it seems confusing where things are at.

  • dave1707dave1707 Mod
    edited July 20 Posts: 7,923

    @Simeon I'm not sure how I got into this situation. See attached image. I was able to slide the screen sideways to also show the Reference, Assets, Shader Lab, and Air Code. Once I closed Codea, things were fine.

    PS. If you're viewing in landscape orientation, slide the image up to display the Codea keyboard overlaying the screen or view in portrait orientation.

  • Posts: 1,400

    @dave1707 - just drag your finger from right to left on the projects view. The projects blur into the back and the settings window scrolls in from the right. Tapping the blurred project section or dragging left to right returns to the project screen, or if you drag long enough slides in the assets/Aircode etc screen. Seems a quite neat setup now.

  • dave1707dave1707 Mod
    Posts: 7,923

    @Bri_G If you're referring to my image above, apparently you didn't slide the image all the way up. I guess I should add that comment to the original post. I only use my iPad in portrait mode, so when you view the above image in landscape, you're missing the bottom part of the screen. That's where you'll see the Codea keyboard overlaying the screen. I could only get rid of it by closing Codea.

  • Posts: 1,400

    @dave1707 - oops sorry, did partially scroll it down but didn’t see keyboard there.

  • dave1707dave1707 Mod
    Posts: 7,923

    @Bri_G Thats OK, it's my fault. I'm so used to viewing in portrait orientation that I forget that others view in landscape. I'll also make that mistake when I write code. I never check what it looks like for those in landscape orientation.

  • Posts: 1,400

    @Simeon - recently upgraded my iPad 2 to a 2018 version 6. Signed onto it with my account and downloaded Codea. No projects other than examples etc. Used file app to look in iCloud and quite a few projects there with the little cloud and arrow hovering over them. Ran a couple, didn’t work but looked to be due to resources. Noted that they were not saved to the project list. Downloaded another, just needed a dependency on cameras set up - then worked fine. Closed the project and looked on project list - not there. Typed in a simple project and it was saved to projects and visible.

    I assume this is due to edited files being stored in their default path - is that the case. It could be useful to indicate the project source on the project icon, say a cloud in the top right hand corner or similar icon. I take it we need to copy projects with the file app, and resources, to the Codea Documents (root) folder to retain them in the project file window.

    Also worth considering is adding a version variable to Codea for files which could also be displayed on the project icon - in these days of multiple files stored in various locations (local/LAN/Cloud) it could be useful - I know you can add this to the file name.

Sign In or Register to comment.