我创建了Matrix4f,它是我的着色器的正交透视图。要存储用于着色器的上传矩阵,需要将其存储在FloatBuffer中。当我想将矩阵放入FloatBuffer时,我的数学库JOML出现错误。 (我使用LWJGL3) 错误如下:
using (var context = new DbContext())
{
var se = new SubscriptionError()
{
FieldName1 = "Value",
SubscriptionId = 1,//Parent key
//SubscriptionErrorId is auto
};
context.SubscriptionError1.Add(se);
context.SaveChanges();
}
那是我的代码:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.joml.MemUtil$MemUtilUnsafe
(file:/C:/Dev/Java/Learn%20OpenGL/lib/joml-1.9.6.jar) to field
java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of
org.joml.MemUtil$MemUtilUnsafe
WARNING: Use --illegal-access=warn to enable warnings of further illegal
reflective access operations
WARNING: All illegal access operations will be denied in a future release
答案 0 :(得分:1)
根据评论进行了更新:
该错误是由于使def say_hello():
print('Hello User')
say_hello()
类的<form action="search.php?search=test" method="post" id="searchForm">
字段可访问而引起的,以便使用<form action="/search/test" method="post" id="searchForm">
类将其用于填充缓冲区。
此问题已通过this commit修复,因此,应在最新版本的JOML中解决。因此,如果可能,您应该更新到最新版本。
旧版本的两种解决方法:
JOML有一个启动选项,它禁止使用address
类。因此,您可以将java.nio.Buffer
传递到您的应用程序。但是该标志在很大程度上没有记录,并且尚不完全清楚该标志会带来什么影响。
另一种解决方法是将数据从矩阵手动移至缓冲区:
Unsafe
但这不是很好,因为您正在手动执行 ,而JOML在不使用Unsafe
时已经在内部进行了操作。