Pixmap圈边框未出现在libGDX html项目中

时间:2014-06-28 17:40:48

标签: java opengl gwt libgdx

我正在用libGDX编写我的第一个项目,我正在尝试在背景上绘制一个带有不透明边框的透明圆圈。 它在android和桌面项目中按需工作。但是,html项目不会渲染圆的边框。

no border on the html project

圆圈是使用像素图创建的纹理。由于没有可能为drawCircle方法设置strokewidth(为什么没有?;请参阅http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/Pixmap.html#drawCircle-int-int-int-),我将边框绘制为fillcircle,并在其上面添加另一个圆圈:

  1. 创建纹理

    Pixmap pixmap = new Pixmap(radius * 2 + 1, radius * 2 + 1, Format.RGBA8888); Pixmap.setBlending(Blending.None); pixmap.setColor(new Color(1,1,1,1)); pixmap.fillCircle(radius, radius, radius); pixmap.setColor(new Color(0, 0, 0, 0.6f); pixmap.fillCircle(radius, radius, radius - borderWidth); texture = new Texture(pixmap); texture.setFilter(TextureFilter.Linear, TextureFilter.Linear); pixmap.dispose();

  2. 绘制

    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT  (Gdx.graphics.getBufferFormat().coverageSampling ? GL20.GL_COVERAGE_BUFFER_BIT_NV : 0));
    
    // tell the camera to update its matrices.
    camera.update();
    game.spriteBatch.setProjectionMatrix(camera.combined);
    
    // begin the drawing process
    game.spriteBatch.begin();
    drawBackground();
    
    //circle gets drawn here
    game.spriteBatch.draw(texture, 50, 50);
    
    //end drawing process
    game.spriteBatch.end();
    
  3. 有什么想法吗?

    编辑:在Ubuntu 14.04上测试Chrome(35.0.1916.153)和Firefox(30.0)。任何人都可以重现这个问题吗?

1 个答案:

答案 0 :(得分:0)

您需要在绘制圆圈之前禁用混合:

pixmap.setBlending(Pixmap.Blending.None);
pixmap.fillCircle(radius, radius, radius);