2011-04-07 5 views
0

어떻게 든 Ogre :: ResourceManager에로드 된 Ogre3D 리소스를 resources.cfg에서 programm의 다른 부분과 공유 할 수 있습니까? 가능하다면 SFML로하면 좋을 것입니다.C++, Ogre3D, SFML, 공유 리소스?

예를 들어, CEGUI가이를 자동으로 수행 할 수 있음을 알고 있습니다.

답변

1

오우거는 자연스럽게 파일 경로에서 리소스를 추상화합니다. 이것은 리소스가 파일 시스템에서 온 것일 필요가 없기 때문입니다 (네트워크를 통해 스트리밍되거나 압축 된 아카이브에서 압축을 풀 수 있음). 따라서 캡슐화없이 Ogre 리소스에서 파일 시스템 경로를 가져올 수 없습니다.

SFML이있는 리소스 시스템 (SFML 작동 방식에 익숙하지 않은 경우)을 확장 한 다음 리소스 데이터 자체를 해당 라이브러리에 전달해야합니다. 필자는 대부분의 라이브러리가 파일 시스템 경로가 아닌 다른 방법으로 데이터를 제공하는 방법을 가지고 있음을 발견했습니다. SFML에이 기능이 없다면 좀 더 자세히 조사해 보시기 바랍니다.

당신은 CEGUI가 이미 이것을 수행했다고 언급했습니다. 맞습니다. CEGUI/Ogre interop 레이어는 Ogre의 리소스 처리 프레임 워크 위에 구축되어 꽤 많은 작업을 수행합니다. Ogre에서 리소스를 요청하고 Ogre를 통해 리소스를로드 한 다음 데이터를 CEGUI로 전달합니다. CEGUI 자체는 결코 파일 시스템을 건드리지 않습니다.

0

나는 자원 관리자를 호출하여 원하는 것을 검색 한 다음 SFML에 제공 할 수 있다고 생각합니다. 당연히 둘을 붙이기위한 코드를 작성해야합니다.

+0

이미 Ogre의 리소스 관리자 클래스를 살펴 보았습니다. 하지만 원래 pathes를 파일에서 검색 할 가능성을 찾지 못하는 것 같습니다 (예를 들어, SFML에서는이를 필요로 함). 이는 오우거 내부 이름 (자원 그룹 이름과 내용 이름 만 반환 할 수 있지만 원본 pathes는 반환하지 않음) 만 반환 할 수 있습니다. – blubberbernd