在macOS Mojave上静音OpenGL警告

时间:2018-11-30 17:28:31

标签: opengl freeglut

我的代码充满了

之类的警​​告
  

'glTranslatef'已被弃用:首先在macOS 10.14中弃用-OpenGL   已弃用API。 (定义GL_SILENCE_DEPRECATION可以使这些静音   警告)

我做了public class Main { int totalNodes = 0; public Main() throws Exception { String file = getClass().getResource("/test.xml").getFile(); File fXmlFile = new File(file); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); countNodes(doc.getDocumentElement()); System.out.println(totalNodes); } public void countNodes(Node node) { System.out.println(node.getNodeName()); totalNodes++; NodeList nodeList = node.getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { Node currentNode = nodeList.item(i); if (currentNode.getNodeType() == Node.ELEMENT_NODE) { countNodes(currentNode); } } } public static void main(String[] args) throws Exception { new Main(); } } ,但不能解决问题。 我使用通过function calcLineCoords(line) { const { tl, tr, bl, br, } = line.calcCoords(); let coordsStart; let coordsEnd; if (line.x1 > line.x2) { if (line.y1 > line.y2) { coordsStart = br; coordsEnd = tl; } else { coordsStart = tr; coordsEnd = bl; } } else { // eslint-disable-next-line no-lonely-if if (line.y1 > line.y2) { coordsStart = bl; coordsEnd = tr; } else { coordsStart = tl; coordsEnd = br; } } return [coordsStart, coordsEnd]; } // Usage: // const [coordsStart, coordsEnd] = calcLineCoords(line);

安装的#define GL_SILENCE_DEPRECATION

我可以以某种方式使其静音吗?

1 个答案:

答案 0 :(得分:0)

您应该将#define GL_SILENCE_DEPRECATION放在OpenGL之前,这样您可以执行以下操作:

#ifdef __APPLE__
/* Defined before OpenGL and GLUT includes to avoid deprecation messages */
#define GL_SILENCE_DEPRECATION
#include <OpenGL/gl.h>
#include <GLUT/glut.h>
#else
#include <GL/gl.h>
#include <GL/glut.h>
#endif

解决此问题的另一种方法是在编译阶段将选项-Wno-deprecated-declarations传递给编译器。