2016-09-20 91 views
0

我有一個藝術性的側面項目,比我想要的要慢。基本上,我想繪製一些形狀和顏色,以便XOR我已繪製的形狀和顏色。該程序使這樣的事情:enter image description here如何XOR形狀下的顏色? (SDL2)

這是七個黑色圓圈XORed到屏幕上。

我的方法很慢,對於每個像素,我循環遍歷每個圓圈以確定它是否應該異或。

我可以用SDL_gfx繪製圓,但我似乎無法找到XORs的繪圖模式。我目前的思考過程是使用混合模式,至少會告訴我某個特定像素是奇數還是偶數。但是,創建可呈現爲(SDL_TEXTUREACCESS_TARGET)的SDL_Texture使其無法直接操作(SDL_TEXTUREACCESS_STREAMING)。

一個簡單的問題是,我該如何應用黑色圓圈,使它與下面的像素異或?

回答

1

我不認爲有一種方法可以用SDL_Renderer做到這一點,並且仍然具有合理的性能。您將不得不在SDL_Surface中完成這項工作並再次上傳。

我寫了SDL_gpu以啓用與SDL的內置渲染API類似風格的現代圖形效果。如果你已經使用過它,這個特殊效果在GLSL中是微不足道的。如果您想避免使用自定義着色器,則可能會使用SDL_gpu具有的擴展混合模式選項來實現此效果。

+0

謝謝。我確實使用glsl找到了一張照片,這看起來很簡單,我只需要稍微磨練一下我的技能。將考慮SDL_gpu。 – Carl