2014-10-30 3 views
0

이미지 세트가 있고 다른 디스플레이에 표시해야합니다. 그래서 두 개의 창과 두 개의 렌더러를 만듭니다. 그러나 일부 이미지는 여러 디스플레이에 표시 될 수 있습니다. 텍스처가 rendererOne을 사용하여 생성되고 rendererTwo와 함께 표시되는 경우 프로그램 충돌이 발생합니다. 내가 쇼를 필요로 할 때마다 런타임에 텍스처를 생성하면 FPS가 떨어집니다.SDL2 : 여러 창 사이에서 렌더러 공유

이 문제를 해결하는 것이 더 나은 방법은 무엇입니까? 렌더러를 여러 디스플레이에서 공유 할 수 있습니까? 또는 다른 렌더러간에 텍스처를 공유 할 수 있습니까?

p.s. "Image1.one.two.png"또는 "Image2.one.png"등의 이미지 이름을 표시하고 Image1 사본 2 개와 Image2 사본 1 개를 만들 수 있지만 매우 어려운 방법이며 많은 RAM이 필요합니다.

p.p.s. 나는 OpenGL을 직접 사용하지 않는다.

+0

단일 텍스처를 사용하지 않는 이유는 없습니다. 당신이 그것을 사용하고있는 맥락을 알지 못한다면, 확실히 말하기는 어렵지만, 이론적으로 그것을 사용할 때마다 텍스쳐를 재현해서는 안됩니다. 필요할 때마다 한 번로드하고 그립니다. – Zammalad

답변

0

텍스처의 지연 초기화를 사용하여이 문제를 해결했습니다. SDL_Surface를 저장하고 텍스쳐를 보여줄 필요가있을 때 확인해 봅니다 :

if (m_texture == nullptr || !m_texture->CompatibleWithRenderer(renderer)) 
{ 
    m_texture = new Texture(renderer, m_surface); 
} 
관련 문제