问题列表 - 第6898页

329
推荐指数
22
解决办法
38万
查看次数

简单的OpenGL纹理贴图不起作用?

我试图找出OpenGL中的纹理映射,我无法得到一个简单的例子.

正在绘制多边形,虽然它没有纹理,只是纯色.此位图正在正确加载到sprite1 []中,因为我现在已成功使用glDrawPixels.

我使用glGenTextures来获取我的tex名称,但我注意到它不会改变texName1; 即使在调用glGenTextures之后,这个GLuint也是我初始化它的任何东西......

我启用了GL_TEXTURE_2D.

下面是代码:

GLuint texName1 = 0;

glGenTextures(1, &texName1);
glBindTexture(GL_TEXTURE_2D, texName1);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA_EXT, sprite1[18], sprite1[22], 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, &sprite1[54]);

glColor3f(1, 1, 0);
glBindTexture(GL_TEXTURE_2D, texName1);
glBegin(GL_QUADS);
    glTexCoord2f (0.0, 0.0);
    glVertex3f (0.0, 0.0, -5.0f);
    glTexCoord2f (1.0, 0.0);
    glVertex3f (.5, 0.0, -5.0f);
    glTexCoord2f (1.0, 1.0);
    glVertex3f (.5, .5, -5.0f);
    glTexCoord2f (0.0, 1.0);
    glVertex3f (0.0, .5, -5.0f);
glEnd();
Run Code Online (Sandbox Code Playgroud)

更新:我不知所措.这是我尝试过的一切: …

c++ opengl textures

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

确定用作方法参数的变量的名称

在C#中,您如何确定调用方法时使用的变量的名称?

例:

public void MyTestMethod1()
{
  string myVar = "Hello World";
  MyTestMethod2(myVar);
}

public void MyMethod2(string parm)
{
  // do some reflection magic here that detects that this method was called using a variable called 'myVar'
}
Run Code Online (Sandbox Code Playgroud)

我知道参数可能并不总是变量,但我使用它的地方是在一些验证代码中,我希望开发人员可以明确说明他们验证的值的友好名称,如果他们不'然后它只是从他们称之为方法的var的名称推断它...

c# reflection parameters

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

C#中'@'的所有用法是什么?

我注意到这段代码:

 FileInfo[] files =new DirectoryInfo(@"C:\").GetFiles();
Run Code Online (Sandbox Code Playgroud)

目的是@什么?还有其他用途吗?

.net c#

5
推荐指数
2
解决办法
641
查看次数

如何在SML中的case语句中打印?

我刚刚开始使用SML,我正在尝试修改一些代码,以便我理解它正在做什么(我找不到一个像样的SML/NJ调试器,但这是一个单独的问题).

fun type_check e theta env non_gens = 
  case e of
   constant_int _ => (integer,theta) 
  | 
   constant_bool _ => (boolean,theta) 
  | ...
Run Code Online (Sandbox Code Playgroud)

假设这是有效的代码,因为constant_int是已经声明的数据类型的一部分,等等.如何添加一个print语句来说"返回"整数"'到案例中?我试过了:

...
constant_int _ => (print "returning integer") (integer,theta)
...
Run Code Online (Sandbox Code Playgroud)

但我得到:

    stdIn:167.22-167.65 Error: operator is not a function [tycon mismatch]
      operator: unit
      in expression:
        (print "returning integer") (integer,theta)

我想我只是不理解如何执行一系列语句,只有最后一个语句应该被视为返回值.有什么建议?

另外,我如何打印自己的数据类型值?当我尝试将数据类型值传递给print()时,SML不喜欢所以我可能必须为每种数据类型创建一个新的打印函数,这是正确的吗?

sml smlnj

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

如何在.NET中实现匿名方法中的捕获值

我很好奇.NET实现及其背后的决定.

例如,在Java中,匿名类中使用的所有捕获值都必须是最终的.这个要求似乎在.NET中被删除了.

此外,与参考类型相比,值类型的捕获值的实现是否存在差异?

谢谢

.net c# java closures

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

为什么Python在迭代时修改列表时会跳过元素?

我正在用python开发一个程序,我只是注意到语言中的foreach循环有问题,或者列表结构.我将简单地给出一个我的问题的通用示例,因为我在我的程序和我的通用示例中都得到了相同的错误行为:

x = [1,2,2,2,2]

for i in x:
    x.remove(i)

print x        
Run Code Online (Sandbox Code Playgroud)

嗯,这里的问题很简单,我虽然这个代码应该从列表中删除所有元素.好吧,问题是在执行之后,我总是在列表中获得2个剩余元素.

我究竟做错了什么?在此先感谢您的所有帮助.

编辑:我不想清空一个清单,这只是一个例子......

python foreach list

11
推荐指数
3
解决办法
5580
查看次数

C最佳实践项目组织

我想知道组织大型C项目的最佳实践是什么.它是一个专业项目,而不是一个开源的项目,可能存储在Git存储库中.应该如何分类?结构应该去哪里?应该何时使用附加到结构的函数与将结构作为参数的函数?

在布置项目中的文件方面,应该如何结合在一起?哪种命名约定最合适?

c project-organization

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

操作系统终止您的进程时返回代码

我想测试一下,如果使用多重进程,我可以在32位操作系统上使用超过4GB的内存(我的:Ubuntu,1GB内存).

所以我编写了一个小程序,mallocs略小于1GB,并对该阵列执行一些操作,并运行该程序的5个实例查询分叉.

问题是,我怀疑操作系统杀死了其中的4个,只有一个幸存下来并显示它是"PID:我已经完成了").

(我用小阵列尝试了它并获得了5次打印,当我用TOP查看正在运行的进程时,我只看到一个实例..)

奇怪的是这个 - 我收到了所有实例中的返回码0(成功?),包括那些据称被OS杀死的实例

我没有得到任何按摩说明过程被杀死了.

这种情况的返回码是否正常?

(如果是这样,它会降低我对'返回代码'的信任......)

谢谢.

编辑:一些答案提示小程序中可能存在错误,所以在这里.分叉和保存返回代码的较大程序较大,我在这里上传时遇到了麻烦,但我认为(希望)没关系.

另外我注意到如果不是用我的分叉程序运行它,我使用'./a.out&./a.out&./a.out&./a.out&'在终端上运行它(当./a.out是附加的小程序的二进制文件.我确实看到了一些"被杀"的消息.

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#define SMALL_SIZE 10000
#define BIG_SIZE 1000000000
#define SIZE BIG_SIZE
#define REAPETS 1

    int
main()
{
    pid_t my_pid = getpid();

    char * x = malloc(SIZE*sizeof(char));

    if (x == NULL)
    {
            printf("Malloc failed!");
            return(EXIT_FAILURE);
    }

    int x2=0;
    for(x2=0;x2<REAPETS;++x2)
    {
            int y;
            for(y=0;y<SIZE;++y)
                    x[y] = (y+my_pid)%256;
    }
    printf("%d: I'm over.\n",my_pid);
    return(EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)

linux memory-management kill process return-value

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

C memset似乎没有写给每个成员

我写了一个小坐标类来处理int和float坐标.

template <class T>
class vector2
{
public:
    vector2() { memset(this, 0, sizeof(this)); }
    T x;
    T y;
};
Run Code Online (Sandbox Code Playgroud)

然后在main()中我做:

vector2<int> v;
Run Code Online (Sandbox Code Playgroud)

但根据我的MSVC调试器,只有x值设置为0,y值不受影响.我以前从未在模板类中使用sizeof(),这可能是什么导致了麻烦?

c++ templates sizeof memset

6
推荐指数
3
解决办法
3847
查看次数