LibGDX - Gdx.graphics.getWidth()如何返回显示表面的宽度?

时间:2015-04-05 07:29:23

标签: java android libgdx

我想更多地了解LibGDX的内部世界。

例如在Graphics.java内,我发现以下内容:

/** @return the width in pixels of the display surface */ 
public int getWidth (); 

但是,我找不到getWidth()方法的源代码。

我在哪里可以找到getWidth()方法源代码?

2 个答案:

答案 0 :(得分:5)

每个可用的后端/平台都有不同的接口实现。

在LWJGL后端,实现如下所示:

public int getWidth () {
    if (canvas != null)
        return Math.max(1, canvas.getWidth());
    else
        return (int)(Display.getWidth() * Display.getPixelScaleFactor());
}

将实际实现再次委托给AWT Canvas或LWJGL Display。

这种接口背后的一般理念可以在LibGDX中找到。您也可以自己执行特定于平台的代码。它在the wiki中被描述。

答案 1 :(得分:4)

来自libgdx docs(Graphics.java):

  

此接口封装与图形处理器的通信。   取决于可用的硬件和当前的应用程序   配置,此处提供对GL20GL30的访问权限。

基本上,Graphics.java代表一个接口。 getWidth方法是接口中的抽象方法,需要在实现接口的所有类中重写。

如果您希望查看getWidth方法中的代码,您需要查看实现Graphics接口的其中一个类。