小编ShP*_*vel的帖子

OpenGL,如何使用framebuffer中的depthbuffer作为通常的深度缓冲区

我有帧缓冲区,深度组件和4个颜色附件与4纹理

我在其中绘制了一些东西,然后取消绑定缓冲区,使用4个纹理进行片段着色器(延迟光照).后来我想在屏幕上绘制更多东西,使用我的帧缓冲区中的深度缓冲区,是否可能?

我尝试再次绑定framebuffer并指定glDrawBuffer(GL_FRONT),但它不起作用.

opengl framebuffer depth-buffer

9
推荐指数
2
解决办法
6854
查看次数

什么是返回NOT NULL指针的正确方法

我在我的C++程序中使用外部C库,并且库使用必须返回的回调函数void*.库检查返回值是否为NULL,这意味着成功.

那么告诉它一切都很好的最佳方法是什么?

我用:

return reinterpret_cast<void*>(1);
Run Code Online (Sandbox Code Playgroud)

但它看起来很难看......

编辑:谢谢你的回复,我会留下这个:

static int success;
return &success;
Run Code Online (Sandbox Code Playgroud)

c++ pointers

7
推荐指数
1
解决办法
1974
查看次数

在main()消失之前初始化的值

无法理解奇怪的程序行为 - 希望有人可以解释.

dummy.h:

#ifndef DUMMY_H
#define DUMMY_H

#include <iostream>

class Dummy
{
    int val;

public:
    int Init(int new_val)
    {
        return val = new_val;
    }

    int Get()
    {
        return val;
    }

    Dummy():
        val(-1)
    {
        std::cout << "constructed" << std::endl;
    }

    ~Dummy()
    {
        std::cout << "deconstructed" << std::endl;
    }
};

#endif /*DUMMY_H*/
Run Code Online (Sandbox Code Playgroud)

header.h:

#include "dummy.h"

extern Dummy dummy;
Run Code Online (Sandbox Code Playgroud)

dummy.cpp:

#include "dummy.h"

Dummy dummy;
Run Code Online (Sandbox Code Playgroud)

main.cpp中:

#include <iostream>

#include "header.h"

int res1 = dummy.Init(2);
int res2 = dummy.Get();

int main()
{
    std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++

5
推荐指数
1
解决办法
149
查看次数

OpenCL,从GPU内核直接访问主机内存

有没有办法在主机上分配内存,可以直接从GPU访问,而无需复制?

就像CUDA中的cudaHostGetDevicePointer一样.

gpgpu opencl

4
推荐指数
1
解决办法
2255
查看次数

Python,如何在lambda中展开元组?

我有2个等长列表,我试图得到它们的标量产品,但它不能这样工作:

sum(map(lambda a,b: a*b, zip(list1, list2)))

error: TypeError: <lambda>() takes exactly 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)

即使这段代码不适合我的任务,有没有办法强制lambda在这种情况下使用元组?

我想做点什么

lambda x: (a,b)=x;a*b 
Run Code Online (Sandbox Code Playgroud)

但它不适用于C风格的';' )

谢谢你的答案,还需要学习很多关于Python的东西)

python lambda

4
推荐指数
2
解决办法
1万
查看次数

linux,LD_PRELOAD错误

我是linux下编程的新手,并尝试使用这段代码:http: //scaryreasoner.wordpress.com/2007/11/17/using-ld_preload-libraries-and-glibc-backtrace-function-for-debugging/

但得到错误:"ERROR:ld.so:来自LD_PRELOAD的对象'libwrap_ioctl.so'无法预加载:忽略."

什么可以导致它?system - Archlinux,内核2.6.32

谢谢你的回答

upd1:"检查ldd libwrap_ioctl.so是否缺少此库的某些依赖项."

检查.不,我有所有需要的图书馆

linux

2
推荐指数
1
解决办法
4667
查看次数

C++运算符','

可能重复:
C++逗号运算符

什么是运营商','标准的结果?最后的论点?在像这样的代码中,例如:

int a = 0;
int b = 1;

while(a,b);
Run Code Online (Sandbox Code Playgroud)

或者像这样使用它是不允许的?MSVS thiks结果是b,是真的吗?

抱歉复制,不知道这个操作员怎么用英语打电话)

c++

-1
推荐指数
2
解决办法
346
查看次数

标签 统计

c++ ×3

depth-buffer ×1

framebuffer ×1

gpgpu ×1

lambda ×1

linux ×1

opencl ×1

opengl ×1

pointers ×1

python ×1