JAVA當中的記憶體塊物件的 Lua 封裝和多型效應

依偎的小鳥發表於2020-06-29

對於 3d 庫來說,API 涉及大量的記憶體塊的操作。建立 Buffer ,貼圖,shader ,都需要輸入一個資料塊。大多數資料塊是隻讀的,少部分是需要回寫的。對於只讀資料塊,封裝層可以用 lua string 替代,可寫的用 userdata 。

<html>
    <body>
        <script type="text/javascript" src="
    </body>
</html>


bgfx 自己抽象了一個叫做 Memory 的結構,用來統一描述這類記憶體塊物件。按 bgfx 的定義,Memory 的構造由使用者決定,而釋放通常由 bgfx 管理,而非呼叫者。

即,使用者負責構造出 Memory 物件,將資料複製進去,然後再傳遞給 bgfx 的 api 後就可以撒手不管了。但是,如果你構造出 Memory 物件不傳遞給 bgfx 則會造成記憶體洩漏(因為沒有任何直接釋放它的方法);也不可以將一個 Memory 物件使用多次(傳遞給 bgfx 多次),因為一旦傳給 bgfx ,就失去了物件的控制權。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31523794/viewspace-2701195/,如需轉載,請註明出處,否則將追究法律責任。

相關文章