Mac과 Windows 모두에서 OpenGL C++ 코드를 실행하는 데 사용할 수있는 if 구문이 있는지 알고 싶습니다. 더 구체적으로, 코드 시작시 코드가 Mac (일반적으로 xcode) 또는 Windows (일반적으로 Visual C++)에서 실행되는지 여부를 결정하는 if 조건을 넣을 수 있으므로 그에 따라 헤더 파일을 포함 할 수 있습니다.OpenGL cpp 코드가 Windows와 Mac에서 모두 실행됩니까?
답변
사전 처리기 #ifdef
을 사용할 수 있습니다.
#ifdef __APPLE__
#ifdef TARGET_OS_MAC
#include <osx.h>
#endif
#elif defined(_WIN32) || defined(_WIN64)
#include <win.h>
#endif
적합한 것을 사용하려면 시스템 인터페이스를 추상화해야합니다. 이것은 빌드 타임에 발견 될 수 있습니다. 또는 Windows 빌드와 Xcode/Makefile 프로젝트가 OS X의 적절한 위치에 설치되어있을 수 있습니다.
Win32에서 Win32 API를 사용하는 것이 관련된. OS X에서는 Carbon이 지원되지 않으므로 Objective C를 사용하여 최소한의 윈도우 시스템을 구현해야합니다. 운좋게도이 작업은 그리 어렵지 않으며 일단 구현하면 주 응용 프로그램이 걱정없이 실행할 수 있습니다.
프로토 타이핑의 경우 SDL/GLUT/Qt 등을 염두에두고 제작 된 프레임 워크를 사용하는 것이 더 건강 할 수도 있습니다. 프로덕션에서는 각 대상 플랫폼을 전문으로하여 더 나은 성능과 제어를 얻게됩니다.
C/C++에서 표준 헤더 파일을 사용한 경우 glut을 사용하여 OpenGL 창을 초기화하고 사용자로부터 키보드/마우스 이벤트를 가져 오기만하면됩니다. GLUT는 OS 레이어를 추상화합니다.
: 여기 는 GLUT 다운로드 링크는 (OS 독립를) 찾을 수 이전 링크의 맥 (시작)에 대한 GLUT에 대한 링크http://developer.apple.com/library/mac/#samplecode/glut/Introduction/Intro.html
여기
입니다
http://www.opengl.org/resources/libraries/glut/glut_downloads.php
두 개의 프로젝트 파일 myProject.xcode와 my Project.vcproj 다른 모든 파일은 공유해야합니다.
참고 : 타이머 및 기타 모든 OS 관련 항목은 피해야하며 대신 GLUT 기능을 사용해야합니다.
Windows/Linux/mac 용으로 빌드 할 때 적절한 GLUT에 연결해야합니다.
- 1. Xcode없이 Mac에서 OpenGL Hello World
- 2. OpenGL 명령은 어디에서 실행됩니까?
- 3. 웹 사이트 Windows와 Mac에서 글꼴이 같지 않음
- 4. Mac에서 OpenGL 컨텍스트
- 5. CGL 대 Mac에서 OpenGL
- 6. 주석으로 인해 코드가 느리게 실행됩니까?
- 7. 클래스 정의시 어떤 코드가 실행됩니까?
- 8. 디버거가 멈 추면 코드가 실행됩니까?
- 9. C# -SQL Server 응용 프로그램이 Mac에서 실행됩니까?
- 10. Ubuntu/Windows와 다른 Mac에서 PHP 및 MySQL을 실행 중입니다.
- 11. OpenGL 코드가 GPU에서 실행되고 있습니까?
- 12. 자바 소켓 : Socket.close()는 Windows와 Mac에서 다른 연결을 종료합니까?
- 13. (Pathinfo와 fnmatch 파트 2) Windows와 Mac에서 속도 벤치 마크가 역전되었습니다.
- 14. Silverlight WebBrowser 컨트롤입니다. Windows와 Mac에서 동일한 기능을 제공합니까?
- 15. rand() 및 srand() function opengl visual cpp
- 16. 헤더 파일과 cpp/소스 파일을 모두 사용해야합니까?
- 17. 32 비트 응용 프로그램은 64 비트 Mac에서 어떻게 실행됩니까?
- 18. TextBox를 두드 리거나 클릭하면 코드가 실행됩니까?
- 19. 코어 데이터 컨텍스트 저장 : 코드가 순차적으로 실행됩니까?
- 20. SQL Server에서 데이터베이스를 삭제하면 코드가 실행됩니까?
- 21. DataGridview에서 Enter 키를 누르면 코드가 어떻게 실행됩니까?
- 22. 어떤 작업으로 인해 병렬 코드가 느리게 실행됩니까?
- 23. 이전 소스 코드가 SDK 4.2와 함께 실행됩니까?
- 24. .NET 디버깅을 중지하면 finally 블록의 코드가 실행됩니까?
- 25. Windows와 OS X간에 OpenGL 알파 블렌딩의 차이는 무엇이 있습니까?
- 26. 간단한 OpenGL 코드가 작동하지 않습니다.
- 27. Mac에서 내 git 저장소를 모두 검색하려면 어떻게합니까?
- 28. Linux 및 Mac에서 모두 Android 사용
- 29. Mac에서 Intellij IDEA : 포맷 코드가 작동하지 않습니다.
- 30. Qt : Mac에서 Phonon 예제 코드가 깨짐
내가 필요한 것. 감사합니다! – nitinsh99