簡體   English   中英

如何在pygame中將列表繪制到屏幕上?

[英]How can I draw a list to the screen in pygame?

我正在編寫一個程序來計算 OpenGL 着色器中的一些像素內容。 通過該計算,我得到一個列表,其中包含需要寫入屏幕的每個像素。 有沒有一種方法可以一次繪制所有這些數據,而不是遍歷列表並繪制每個像素? 我問這個是因為遍歷包含我屏幕上所有百萬像素的列表並將這些像素單獨寫入屏幕會非常慢。 任何幫助將非常感激。 謝謝。

請參閱如何將 pygame 場景另存為 jpeg?

如果顏色數據在幀緩沖區中,您可以在顯示更新之前使用glReadPixels讀取它(在pygame.display.flip()pygame.display.update()之前)。 使用pygame.image.fromstring()從緩沖區創建新的Surfaces

size = screen.get_size()
buffer = glReadPixels(0, 0, *size, GL_RGBA, GL_UNSIGNED_BYTE)
pygame.display.flip()
screen_surf = pygame.image.fromstring(buffer, size, "RGBA")

如果數據在紋理中(例如存儲在計算着色器中),您可以使用glGetTexImage讀取它:

image_buffer = glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE)
image_surf = pygame.image.fromstring(image_buffer, (width, height), "RGBA")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM