首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenTK GenFramebuffers误差

OpenTK GenFramebuffers误差
EN

Stack Overflow用户
提问于 2012-06-29 22:00:58
回答 1查看 334关注 0票数 1

我正在尝试使用来自GenFramebuffers的OpenTK函数。在本机OpenGL中,此函数需要生成许多帧缓冲区名称,并需要一个指向将存储名称的int的指针。但是OpenTK变量需要一些名称来生成和一个 out Int32参数。

下面是OpenTK函数的源代码:

代码语言:javascript
复制
    public static void GenFramebuffers(Int32 n, out Int32 framebuffers)
    {
        unsafe
        {
            fixed (Int32* framebuffers_ptr = &framebuffers)
            {
                Delegates.glGenFramebuffers((Int32)n, (UInt32*)framebuffers_ptr);
                framebuffers = *framebuffers_ptr;
            }
        }
    }

据我所见,如果除1以外的任何东西指定为n,它都会覆盖内存。为了确保,我实际上用n=2尝试了它,实际上它编写了我作为out参数传递的Int32,加上之后恰好在内存中的一个Int32。

这不是OpenTK中唯一受影响的函数,所有genXXX函数都是这样的。

我是疯了还是OpenTK真的坏了?

EN

回答 1

Stack Overflow用户

发布于 2012-06-29 22:40:45

我认为这是内部功能。OpenTK在GL类中具有此功能以生成单个框架缓冲区:

代码语言:javascript
复制
    public static int GenFramebuffer()
    {
        int id;
        GenFramebuffers(1, out id);
        return id;
    }

对于数组类型参数,OpenTK具有以下功能:

代码语言:javascript
复制
void GenFramebuffers(Int32 n, [OutAttribute] Int32[] framebuffers)
unsafe void GenFramebuffers(Int32 n, [OutAttribute] Int32* framebuffers)

但我相信你也可以这样使用你提到的函数:

代码语言:javascript
复制
int[] arr = new int[15];
GenFramebuffers(10, out arr[5]); // will fill 10 starting with index 5
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11269504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档