Wrapper and plug-ins

Jonathan Raveh

New Member
Hi,

My name is Jonathan and I work at appnext, a mobile ad network.
We are interested in someone to create a wrapper for Basic4Android, but more plugins for other platfroms as well, if you want. Willing to pay for it of course :)

Let me know if you are interested or email me at:
[email protected]

Many thanks,
Jonathan
 

vpires

Member
Licensed User
Longtime User
Hello. Here is a demo apk of the requested wrapper.
And since i'm studying Agraham excellent openGl wrapper, it also shows a minimal way of doing a opengl plasma effect as seen in the picture bellow.

SC20131018-022217.png


Code Sample :
B4X:
Sub Process_Globals
     Dim timer1 As Timer
End Sub

Sub Globals
    

    Dim appNext As AppNextLib
   
    Dim btLeftAd As Button
    Dim btRightAd As Button
    Dim btLevelFailedAd As Button
    Dim btBackToLobbyAd As Button
    Dim btHide As Button
    Dim exitApp As Boolean : exitApp=False
   
    Dim PanelOpenGl As Panel
    Dim glsv As GLSurfaceView2
   
    Dim framecount As Float
    Dim g_program As Int
    Dim vertices(12) As Float
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("1")
    appNext.Initialize("appNextAd")
    appNext.showBubble("033b239c-01e2-4918-ac9a-394db4df2a44")
    init_demo_gl
End Sub
Sub Activity_Resume
    resume_demo_gl
End Sub
Sub Activity_Pause (UserClosed As Boolean)
    pause_demo_gl
End Sub
Sub activity_KeyPress (KeyCode As Int) As Boolean 'Return True to consume the event
    If KeyCode=KeyCodes.KEYCODE_BACK Then
        CallSubDelayed(Me, "HandleBackKey")
        Return True
    End If
    Return False
End Sub
Sub handleBackKey
    appNext.showBubble("fcd77cdf-c102-4873-b2e4-de0e44cc0a3e")
    exitApp = True
End Sub
Sub appNextAd_onLoadAd
    Log("Ad Loaded")
End Sub
Sub appNextAd_noAds
    Log("No ads")
    If exitApp Then
        Activity.Finish
    End If
End Sub
Sub appNextAd_popupClicked
    Log("Popup clicked")
End Sub
Sub appNextAd_popupClosed
    Log("Popup closed")
    If exitApp Then
        Activity.Finish
    End If
End Sub
Sub appNextAd_popupOpened
    Log("Popup opened")
End Sub
Sub btLeftAd_Click
    appNext.addMoreGamesLeft("762bb0d2-f92e-427d-93a8-0c47fb0c03ab")
End Sub
Sub btRightAd_Click
    appNext.addMoreGamesRight("762bb0d2-f92e-427d-93a8-0c47fb0c03ab")   
End Sub
Sub btLevelFailedAd_Click
    appNext.showBubble("16f016cd-3bef-4d71-a83c-09f0066adcfc")
End Sub
Sub btBackToLobbyAd_Click
    appNext.showBubble("5cb2f047-ecd1-4327-acc3-f6d1481ec1cc")
End Sub
Sub btHide_Click
    appNext.hideMoreGames
End Sub
'---------------------------
'--- OpenGl2 Lib Sample  ---
'---------------------------
Sub init_demo_gl
    glsv.InitializeGL2("glsv")
    glsv.InitializeConfig(8, 8, 8, 8, 16, 0)
    glsv.InitializeFormat(1)     
    glsv.InitializeRender(glsv.RENDERMODE_WHEN_DIRTY)
    PanelOpenGl.AddView(glsv,0,0,PanelOpenGl.Width,PanelOpenGl.Height)
End Sub
Sub resume_demo_gl
    glsv.Resume
    timer1.Initialize("Timer1", 100)
    timer1.Enabled = True
    framecount = 0
End Sub
Sub pause_demo_gl
    glsv.Pause
    timer1.Enabled = False
End Sub
Sub timer1_tick
    glsv.RequestRender
End Sub
Sub glsv_SurfaceCreated(gl As GL2)
    Dim shaderVert, shaderFrag As Int = 0
    Dim shaderVertTexte, shaderFragTexte As String
   
    gl.glClearColor(0.5,1,1,1)
     
    vertices(0) = -1.0f : vertices(1) = 1.0f  : vertices(2) = 0.0f
    vertices(3) = -1.0f : vertices(4) = -1.0f : vertices(5) = 0.0f
    vertices(6) = 1.0f  : vertices(7) = -1.0f : vertices(8) = 0.0f
    vertices(9) = 1.0f  : vertices(10) = 1.0f :    vertices(11) = 0.0f
       
    g_program = gl.glCreateProgram
   
    shaderVertTexte = File.ReadString(File.DirAssets, "bitmap.vert")                 
    shaderVert = gl.glCreateShader(gl.GL_VERTEX_SHADER)
    gl.glShaderSource(shaderVert, shaderVertTexte)
    gl.glCompileShader(shaderVert)
    gl.glAttachShader(g_program, shaderVert)
    gl.glDeleteShader(shaderVert)

    shaderFragTexte = File.ReadString(File.DirAssets, "plasma.fragment")                 
    shaderFrag = gl.glCreateShader(gl.GL_FRAGMENT_SHADER)
    gl.glShaderSource(shaderFrag, shaderFragTexte)
    gl.glCompileShader(shaderFrag)
    gl.glAttachShader(g_program, shaderFrag)
    gl.glDeleteShader(shaderFrag)

    gl.glLinkProgram(g_program)
End Sub
Sub glsv_SurfaceChanged(gl As GL2, width As Int, height As Int)
    gl.glViewport(0, 0, width, height)
End Sub
Sub glsv_Draw(gl As GL2)
    Dim mPositionHandle, uti, uk  As Int
   
    framecount=framecount+1
    gl.glClear(gl.GL_COLOR_BUFFER_BIT)
    gl.glUseProgram(g_program)
       
    mPositionHandle = gl.glGetAttribLocation(g_program, "vPosition")
    gl.glEnableVertexAttribArray(mPositionHandle)
    gl.glVertexAttribPointerF(mPositionHandle, 3 ,False,12, vertices)
   
    uti = gl.glGetUniformLocation(g_program, "u_time")
    uk = gl.glGetUniformLocation(g_program, "u_k")
    gl.glUniform1f(uti,framecount/5)
    gl.glUniform2f(uk,8,8)
       
    gl.glDrawElements(gl.GL_TRIANGLES,6,Array As Short( 0, 1, 2, 0, 2, 3))
    gl.glUseProgram(0)
               
End Sub
 
Top