當前位置: 首頁>>代碼示例>>Java>>正文


Java GLES20.glGetAttribLocation方法代碼示例

本文整理匯總了Java中android.opengl.GLES20.glGetAttribLocation方法的典型用法代碼示例。如果您正苦於以下問題:Java GLES20.glGetAttribLocation方法的具體用法?Java GLES20.glGetAttribLocation怎麽用?Java GLES20.glGetAttribLocation使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.opengl.GLES20的用法示例。


在下文中一共展示了GLES20.glGetAttribLocation方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: initShaders

import android.opengl.GLES20; //導入方法依賴的package包/類
private void initShaders() {
    String strGLVersion = GLES20.glGetString(GLES20.GL_VERSION);
    if (strGLVersion != null)
        Log.i(LOGTAG, "OpenGL ES version: " + strGLVersion);

    GLES20.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);

    progOES = loadShader(vss, fssOES);
    vPosOES = GLES20.glGetAttribLocation(progOES, "vPosition");
    vTCOES  = GLES20.glGetAttribLocation(progOES, "vTexCoord");
    GLES20.glEnableVertexAttribArray(vPosOES);
    GLES20.glEnableVertexAttribArray(vTCOES);

    prog2D  = loadShader(vss, fss2D);
    vPos2D = GLES20.glGetAttribLocation(prog2D, "vPosition");
    vTC2D  = GLES20.glGetAttribLocation(prog2D, "vTexCoord");
    GLES20.glEnableVertexAttribArray(vPos2D);
    GLES20.glEnableVertexAttribArray(vTC2D);
}
 
開發者ID:jmpaaak,項目名稱:EyeShopping,代碼行數:20,代碼來源:CameraGLRendererBase.java

示例2: GLSurfaceFilter

import android.opengl.GLES20; //導入方法依賴的package包/類
/**
 * Constructor
 * this should be called in GL context
 */
public GLSurfaceFilter() {
    mCoordsPerVertex = 2;
    mVertexStride = mCoordsPerVertex * SIZEOF_FLOAT; // 8
    mVertexCount = FULL_RECTANGLE_COORDS.length / mCoordsPerVertex; //4
    mTexCoordStride = 2 * SIZEOF_FLOAT; //8

    hProgram = GLUtil.loadProgram(VERTEX_SHADER, FRAGMENT_SHADER);
    mTextureTarget = GLES11Ext.GL_TEXTURE_EXTERNAL_OES;

    // get locations of attributes and uniforms

    maPositionLoc = GLES20.glGetAttribLocation(hProgram, "aPosition");
    GLUtil.checkLocation(maPositionLoc, "aPosition");
    maTextureCoordLoc = GLES20.glGetAttribLocation(hProgram, "aTextureCoord");
    GLUtil.checkLocation(maTextureCoordLoc, "aTextureCoord");
    muMVPMatrixLoc = GLES20.glGetUniformLocation(hProgram, "uMVPMatrix");
    GLUtil.checkLocation(muMVPMatrixLoc, "uMVPMatrix");
    muTexMatrixLoc = GLES20.glGetUniformLocation(hProgram, "uTexMatrix");
    GLUtil.checkLocation(muTexMatrixLoc, "uTexMatrix");
}
 
開發者ID:LeonHover,項目名稱:MediaCodecRecorder,代碼行數:25,代碼來源:GLSurfaceFilter.java

示例3: draw

import android.opengl.GLES20; //導入方法依賴的package包/類
public void draw() {
    GLES20.glEnable(GLES20.GL_BLEND);
    GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
    GLES20.glUseProgram(mProgram);

    int mPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition");
    GLES20.glEnableVertexAttribArray(mPositionHandle);
    int vertexStride = COORDS_PER_VERTEX * 4;
    GLES20.glVertexAttribPointer(mPositionHandle, COORDS_PER_VERTEX, GLES20.GL_FLOAT, false, vertexStride, mVertexBuffer);

    GLES20.glUniform4fv(GLES20.glGetUniformLocation(mProgram, "aColor"), 1, mColor, 0);
    GLES20.glUniform2f(GLES20.glGetUniformLocation(mProgram, "aCirclePosition"), mCenterX, mCenterY);
    GLES20.glUniform1f(GLES20.glGetUniformLocation(mProgram, "aRadius"), mRadius);
    GLES20.glDrawElements(GLES20.GL_TRIANGLES, mDrawOrder.length, GLES20.GL_UNSIGNED_SHORT, mDrawListBuffer);
    GLES20.glDisableVertexAttribArray(mPositionHandle);
}
 
開發者ID:beetsolutions,項目名稱:opengl_circle,代碼行數:17,代碼來源:GLCircleSprite.java

示例4: onCreate

import android.opengl.GLES20; //導入方法依賴的package包/類
protected void onCreate(){
    if(mRes!=null){
        mGLProgram= GpuUtils.createGLProgramByAssetsFile(mRes,mVertex,mFragment);
    }else{
        mGLProgram= GpuUtils.createGLProgram(mVertex,mFragment);
    }
    mGLVertexCo= GLES20.glGetAttribLocation(mGLProgram,"aVertexCo");
    mGLTextureCo=GLES20.glGetAttribLocation(mGLProgram,"aTextureCo");
    mGLVertexMatrix=GLES20.glGetUniformLocation(mGLProgram,"uVertexMatrix");
    mGLTextureMatrix=GLES20.glGetUniformLocation(mGLProgram,"uTextureMatrix");
    mGLTexture=GLES20.glGetUniformLocation(mGLProgram,"uTexture");

    if(isUseSize){
        mGLWidth=GLES20.glGetUniformLocation(mGLProgram,"uWidth");
        mGLHeight=GLES20.glGetUniformLocation(mGLProgram,"uHeight");
    }
}
 
開發者ID:aiyaapp,項目名稱:AAVT,代碼行數:18,代碼來源:BaseFilter.java

示例5: MyShader

import android.opengl.GLES20; //導入方法依賴的package包/類
/** Creates the shader. This will compile and link the shader. */
public MyShader() {
  // Compile and link the shader program.
  int vertexShader = MyGLUtils.loadShader(GLES20.GL_VERTEX_SHADER, VERTEX_SHADER_SOURCE);
  int fragmentShader = MyGLUtils.loadShader(GLES20.GL_FRAGMENT_SHADER, FRAGMENT_SHADER_SOURCE);
  program = GLES20.glCreateProgram();
  GLES20.glAttachShader(program, vertexShader);
  GLES20.glAttachShader(program, fragmentShader);
  GLES20.glLinkProgram(program);
  MyGLUtils.checkGlError("link program");

  // Get the handles to our shader parameters.
  GLES20.glUseProgram(program);
  positionHandle = GLES20.glGetAttribLocation(program, "aPosition");
  colorHandle = GLES20.glGetAttribLocation(program, "aColor");
  mvpMatrixHandle = GLES20.glGetUniformLocation(program, "uMVPMatrix");
  GLES20.glUseProgram(0);
  MyGLUtils.checkGlError("get handles");
}
 
開發者ID:googlevr,項目名稱:poly-sample-android,代碼行數:20,代碼來源:MyShader.java

示例6: handle

import android.opengl.GLES20; //導入方法依賴的package包/類
@Override
protected int handle() {
    if (mHandle == 0) {
        mHandle = GLES20.glGetAttribLocation(mProgram.handle, mName);
    }
    return mHandle;
}
 
開發者ID:gplibs,項目名稱:android-magic-surface-view,代碼行數:8,代碼來源:GLAttributeParameter.java

示例7: glGetAttribLocation

import android.opengl.GLES20; //導入方法依賴的package包/類
public static int glGetAttribLocation(final int aProgramHandle, final String aAttributeName)
{
    //.if DESKTOP
    //|return gl.glGetAttribLocation(aProgramHandle, aAttributeName);
    //.elseif ANDROID
    return GLES20.glGetAttribLocation(aProgramHandle, aAttributeName);
    //.endif
    
}
 
開發者ID:jfcameron,項目名稱:G2Dj,代碼行數:10,代碼來源:GL.java

示例8: draw

import android.opengl.GLES20; //導入方法依賴的package包/類
/**
 * Encapsulates the OpenGL ES instructions for drawing this shape.
 *
 * @param mvpMatrix - The Model View Project matrix in which to draw
 * this shape.
 */
public void draw(float[] mvpMatrix) {
    // Add program to OpenGL environment
    GLES20.glUseProgram(mProgram);

    // get handle to vertex shader's vPosition member
    mPositionHandle = GLES20.glGetAttribLocation(mProgram, "vPosition");

    // Enable a handle to the triangle vertices
    GLES20.glEnableVertexAttribArray(mPositionHandle);

    // Prepare the triangle coordinate data
    GLES20.glVertexAttribPointer(
            mPositionHandle, COORDS_PER_VERTEX,
            GLES20.GL_FLOAT, false,
            vertexStride, vertexBuffer);

    // get handle to fragment shader's vColor member
    mColorHandle = GLES20.glGetUniformLocation(mProgram, "vColor");

    // Set color for drawing the triangle
    GLES20.glUniform4fv(mColorHandle, 1, color, 0);

    // get handle to shape's transformation matrix
    mMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");
    MyGLRenderer.checkGlError("glGetUniformLocation");

    // Apply the projection and view transformation
    GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mvpMatrix, 0);
    MyGLRenderer.checkGlError("glUniformMatrix4fv");

    // Draw the triangle
    GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, vertexCount);

    // Disable vertex array
    GLES20.glDisableVertexAttribArray(mPositionHandle);
}
 
開發者ID:biezhihua,項目名稱:Android_OpenGL_Demo,代碼行數:43,代碼來源:Triangle.java

示例9: initShader

import android.opengl.GLES20; //導入方法依賴的package包/類
private void initShader(Context context) {
    mVertexShader = ShaderUtil.loadFromAssetsFile("vertex_texture.sh" , context.getResources());

    mFragShader = ShaderUtil.loadFromAssetsFile("frag_texture.sh" , context.getResources());

    mProgram = ShaderUtil.createProgram(mVertexShader , mFragShader);

    maPositionHandle = GLES20.glGetAttribLocation(mProgram , "aPosition");
    maTexCoorHandle = GLES20.glGetAttribLocation(mProgram , "aTexCoor");
    muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram , "uMVPMatrix");
}
 
開發者ID:ynztlxdeai,項目名稱:GLproject,代碼行數:12,代碼來源:Triangle.java

示例10: initShader

import android.opengl.GLES20; //導入方法依賴的package包/類
private void initShader(Context context) {
    mVertexShader = ShaderUtil.loadFromAssetsFile("vertex_angle.sh" , context.getResources());

    mFragShader = ShaderUtil.loadFromAssetsFile("frag_angle.sh" , context.getResources());

    mProgram = ShaderUtil.createProgram(mVertexShader , mFragShader);

    maPositionHandle = GLES20.glGetAttribLocation(mProgram , "aPosition");
    maTexCoorHandle = GLES20.glGetAttribLocation(mProgram , "aTexCoor");
    muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram , "uMVPMatrix");
}
 
開發者ID:ynztlxdeai,項目名稱:GLproject,代碼行數:12,代碼來源:ImageAngle.java

示例11: ImageProgram

import android.opengl.GLES20; //導入方法依賴的package包/類
public ImageProgram() {
    mProgram = OpenGLUtils.loadProgram(VERTEX_SHADER_CODE, FRAGMENT_SHADER_CODE);

    mAPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition");
    mATextureCoordinateHandle = GLES20.glGetAttribLocation(mProgram, "aTextureCoordinate");
    mUTextureHandle = GLES20.glGetUniformLocation(mProgram, "uTexture");
    mUMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");
    mUOpacityHandle = GLES20.glGetUniformLocation(mProgram, "uOpacity");
}
 
開發者ID:vipycm,項目名稱:mao-android,代碼行數:10,代碼來源:GLImageView.java

示例12: draw

import android.opengl.GLES20; //導入方法依賴的package包/類
public void draw(float[] mvpMatrix, float r, float g, float b, float a) {
    // Add program to OpenGL environment
    GLES20.glUseProgram(mProgram);

    // get handle to vertex shader's vPosition member
    int mPositionHandle = GLES20.glGetAttribLocation(mProgram, "vPosition");

    // Enable a handle to the triangle vertices
    GLES20.glEnableVertexAttribArray(mPositionHandle);

    // Prepare the triangle coordinate data
    int vertexStride = COORDS_PER_VERTEX * 4;
    GLES20.glVertexAttribPointer(mPositionHandle, COORDS_PER_VERTEX,
                                 GLES20.GL_FLOAT, false,
            vertexStride, vertexBuffer);

    // get handle to fragment shader's vColor member
    int mColorHandle = GLES20.glGetUniformLocation(mProgram, "vColor");

    // Set color for drawing the triangle
    float[] color = {r,g,b,a};

    GLES20.glUniform4fv(mColorHandle, 1, color, 0);

    // get handle to shape's transformation matrix
    int mMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");
    GLRenderer.checkGlError("glGetUniformLocation");

    // Apply the projection and view transformation
    GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mvpMatrix, 0);
    GLRenderer.checkGlError("glUniformMatrix4fv");

    // Draw the square
    GLES20.glDrawElements(GLES20.GL_TRIANGLES, drawOrder.length,
                          GLES20.GL_UNSIGNED_SHORT, drawListBuffer);

    // Disable vertex array
    GLES20.glDisableVertexAttribArray(mPositionHandle);
}
 
開發者ID:efroemling,項目名稱:bombsquad-remote-android,代碼行數:40,代碼來源:GLRenderer.java

示例13: ColorShaderProgram

import android.opengl.GLES20; //導入方法依賴的package包/類
public ColorShaderProgram(final Context context) {
    super(context, R.raw.vertex, R.raw.fragment);

    // Retrieve uniform locations for the shader program.
    mUMatrixLocation = GLES20.glGetUniformLocation(mProgram, U_MATRIX);
    // Retrieve attribute locations for the shader program.
    mAPositionLocation = GLES20.glGetAttribLocation(mProgram, A_POSITION);
    mAColorLocation = GLES20.glGetAttribLocation(mProgram, A_COLOR);
}
 
開發者ID:Piasy,項目名稱:OpenGLESTutorial-Android,代碼行數:10,代碼來源:ColorShaderProgram.java

示例14: createOnGlThread

import android.opengl.GLES20; //導入方法依賴的package包/類
/**
 * Allocates and initializes OpenGL resources needed by the plane renderer.  Must be
 * called on the OpenGL thread, typically in
 * {@link GLSurfaceView.Renderer#onSurfaceCreated(GL10, EGLConfig)}.
 *
 * @param context                 Needed to access shader source and texture PNG.
 * @param gridDistanceTextureName Name of the PNG file containing the grid texture.
 */
public void createOnGlThread(Context context, String gridDistanceTextureName)
        throws IOException {
    int vertexShader = ShaderUtil.loadGLShader(TAG, context,
            GLES20.GL_VERTEX_SHADER, R.raw.plane_vertex);
    int passthroughShader = ShaderUtil.loadGLShader(TAG, context,
            GLES20.GL_FRAGMENT_SHADER, R.raw.plane_fragment);

    mPlaneProgram = GLES20.glCreateProgram();
    GLES20.glAttachShader(mPlaneProgram, vertexShader);
    GLES20.glAttachShader(mPlaneProgram, passthroughShader);
    GLES20.glLinkProgram(mPlaneProgram);
    GLES20.glUseProgram(mPlaneProgram);

    ShaderUtil.checkGLError(TAG, "Program creation");

    // Read the texture.
    Bitmap textureBitmap = BitmapFactory.decodeStream(
            context.getAssets().open(gridDistanceTextureName));

    GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
    GLES20.glGenTextures(mTextures.length, mTextures, 0);
    GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextures[0]);

    GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,
            GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR_MIPMAP_LINEAR);
    GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,
            GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
    GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, textureBitmap, 0);
    GLES20.glGenerateMipmap(GLES20.GL_TEXTURE_2D);
    GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);

    ShaderUtil.checkGLError(TAG, "Texture loading");

    mPlaneXZPositionAlphaAttribute = GLES20.glGetAttribLocation(mPlaneProgram,
            "a_XZPositionAlpha");

    mPlaneModelUniform = GLES20.glGetUniformLocation(mPlaneProgram, "u_Model");
    mPlaneModelViewProjectionUniform =
            GLES20.glGetUniformLocation(mPlaneProgram, "u_ModelViewProjection");
    mTextureUniform = GLES20.glGetUniformLocation(mPlaneProgram, "u_Texture");
    mLineColorUniform = GLES20.glGetUniformLocation(mPlaneProgram, "u_lineColor");
    mDotColorUniform = GLES20.glGetUniformLocation(mPlaneProgram, "u_dotColor");
    mGridControlUniform = GLES20.glGetUniformLocation(mPlaneProgram, "u_gridControl");
    mPlaneUvMatrixUniform = GLES20.glGetUniformLocation(mPlaneProgram, "u_PlaneUvMatrix");

    ShaderUtil.checkGLError(TAG, "Program parameters");
}
 
開發者ID:nimbl3,項目名稱:nimbl3-arcore,代碼行數:56,代碼來源:PlaneRenderer.java

示例15: draw

import android.opengl.GLES20; //導入方法依賴的package包/類
public void draw() {
    GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);

    // Do a compile rotation every 10 seconds.
    long time = SystemClock.uptimeMillis() % 10000L;
    float angleInDegrees = (360.0f / 10000.0f) * ((int) time);

    // Set our pre-vertex lighting program.
    GLES20.glUseProgram(mPerVertexProgramHandle);

    // Set program handle for cube drawing.
    mMVPMatrixHandle = GLES20.glGetUniformLocation(mPerVertexProgramHandle, "u_MVPMatrix");
    mMVMatrixHandle = GLES20.glGetUniformLocation(mPerVertexProgramHandle, "u_MVMatrix");
    mLightPosHandle = GLES20.glGetUniformLocation(mPerVertexProgramHandle, "u_LightPos");
    mPositionHandle = GLES20.glGetAttribLocation(mPerVertexProgramHandle, "a_Position");
    mColorHandle = GLES20.glGetAttribLocation(mPerVertexProgramHandle, "a_Color");
    mNormalHandle = GLES20.glGetAttribLocation(mPerVertexProgramHandle, "a_Normal");

    // Calculate position of the light.
    // Rotate and then push into the distance.
    Matrix.setIdentityM(mLightModelMatrix, 0);
    Matrix.translateM(mLightModelMatrix, 0, 0.0f, 0.0f, -5.0f);
    Matrix.rotateM(mLightModelMatrix, 0, angleInDegrees, 0.0f, 1.0F, 0.0f);
    Matrix.translateM(mLightModelMatrix, 0, 0.0f, 0.0f, 2.0f);

    Matrix.multiplyMV(mLightPosInWorldSpace, 0, mLightModelMatrix, 0, mLightPosInModelSpace, 0);
    Matrix.multiplyMV(mLightPosInEyeSpace, 0, mViewMatrix, 0, mLightPosInWorldSpace, 0);

    // right
    Matrix.setIdentityM(mModelMatrix, 0);
    Matrix.translateM(mModelMatrix, 0, 4.0f, 0.0f, -7.0f);
    Matrix.rotateM(mModelMatrix, 0, angleInDegrees, 1.0f, 0.0f, 0.0f);
    drawCube();

    // left
    Matrix.setIdentityM(mModelMatrix, 0);
    Matrix.translateM(mModelMatrix, 0, -4.0f, 0.0f, -7.0f);
    Matrix.rotateM(mModelMatrix, 0, angleInDegrees, 0.0f, 1.0f, 0.0f);
    drawCube();

    // top
    Matrix.setIdentityM(mModelMatrix, 0);
    Matrix.translateM(mModelMatrix, 0, 0.0f, 4.0f, -7.0f);
    Matrix.rotateM(mModelMatrix, 0, angleInDegrees, 0.0f, 0.0f, 1.0f);
    drawCube();

    // bottom
    Matrix.setIdentityM(mModelMatrix, 0);
    Matrix.translateM(mModelMatrix, 0, 0.0f, -4.0f, -7.0f);
    Matrix.rotateM(mModelMatrix, 0, angleInDegrees, 0.0f, 1.0f, 0.0f);
    drawCube();

    // center
    Matrix.setIdentityM(mModelMatrix, 0);
    Matrix.translateM(mModelMatrix, 0, 0.0f, 0.0f, -5.0f);
    Matrix.rotateM(mModelMatrix, 0, angleInDegrees, 1.0f, 1.0f, 1.0f);
    drawCube();

    // Draw a point to indicate the light.
    GLES20.glUseProgram(mPointProgramHandle);
    drawLight();
}
 
開發者ID:biezhihua,項目名稱:Android_OpenGL_Demo,代碼行數:63,代碼來源:Cube.java


注:本文中的android.opengl.GLES20.glGetAttribLocation方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。