Imagem de desenho com CoreGraphics no iPad Retina é lento
No meu aplicativo para iPad, estou processando um bitmap fora da tela e, em seguida, desenhando o bitmap na tela. (Isso é porque eu quero reutilizar o código de renderização de bitmap existente.) No iPad 2, isso funciona como um encanto, mas no novo iPad com tela Retina, desenhar o bitmap é muito lento, embora sua resolução ainda seja a mesmo.
Para desenhar o bitmap, usamos as funções regulares do Quartz 2D:CGImageCreate
com um provedor de dados criado porCGDataProviderCreateWithData
, Formato RGBA de 32 bits comkCGImageAlphaNoneSkipLast
. NoUIView
que exibe o bitmap, emdrawRect:
, nós usamosCGContextDrawImage
desenhá-lo para o contexto retornado porUIGraphicsGetCurrentContext
.
Note que eu nem estou tentando desenhar em resolução dupla: por enquanto eu estou bem com a mesma resolução que eu estava usando no iPad 2. Parece CoreGraphics está internamente dobrando os pixels, e então enviando isso para a GPU , mesmo que aCGImage
que eu estou fazendo deve ser bom para passar para a GPU diretamente. Alguma ideia?