2013-11-17 2 views
1

Я хотел бы загрузить часть Pixmap (указанный прямоугольник) в текстуру в графическом процессоре (в указанной позиции).Загрузить часть Pixmap в графический процессор

Что я хотел бы достичь, это

void updateTextureFromPixmap(sourcePixmap,sourceRectangle,destTexture, destRectangle) { 
    destTexture.fill(copyfrom(sourcePixmap),copyarea(SourceRectangle),newArea(destRectangle)); 
} 

Должен ли я использовать glTexSubImage2D? Я все еще изучаю opengl;/

ответ

1

Вы можете использовать Texture#draw, чтобы получить pixmap в текстуру. Как это:

Pixmap imgA = new Pixmap(Gdx.files.internal("mypng")); 
Texture texture = new Texture(200, 200, Pixmap.Format.RGBA8888); 
texture.draw(imgA, 0, 0); 
+0

MHM, это будет загрузить 200х200 в качестве одного из текстуры в GPU, мне нужно обновить только часть текстуры, которая уже находится в ГПУ –

0
public class PixmapHelper { 

    static Pixmap fullGraphics ; 
    static Pixmap miniObject; 

    public static void Initialize() 
    { 

     fullGraphics =AssetLoader.GetPixmap(Settings.TEX_MAP_OBJECTS); 



     miniObject=new Pixmap(8,8, Pixmap.Format.RGBA8888); 
    } 

    static void Draw(TextureRegion textureRegion,Texture dstTexture,int dstX,int dstY) 
    { 

     miniObject.drawPixmap(fullGraphics, 0,0, textureRegion.getRegionX(),textureRegion.getRegionY(), 
textureRegion.getRegionWidth(),textureRegion.getRegionHeight()); 


     dstTexture.draw(miniObject,dstX,dstY); 


    } 
} 
Смежные вопросы