小编old*_*ool的帖子

不鼓励抛弃通用异常吗?

为什么不鼓励抛出泛型(java.lang.Exception)异常,当它通常足以处理方法中的大多数条件失败时?我理解如果一个方法可以抛出多种类型的异常,那么抛出异常的特定子类可能会稍微澄清处理,但在一般的失败/成功情况下,我认为Exception的功能绰绰有余.

java exception

13
推荐指数
2
解决办法
9934
查看次数

OpenGL GL_LINES端点没有加入

替代文字我遇到了GL_LINES块的问题......下面示例中的行不会在末端连接(尽管有时会随机决定连接一个或两个角).相反,端点在彼此的1个像素内(留下一个未完全平方的角;如果这是有意义的话).这是一个绘制实心1像素矩形的简单方块.

 glBegin(GL_LINES);

  glColor3b(cr, cg, cb);

  glVertex3i(pRect->left, pRect->top, 0);
  glVertex3i(pRect->right, pRect->top, 0);

  glVertex3i(pRect->right, pRect->top, 0);
  glVertex3i(pRect->right, pRect->bottom, 0);

  glVertex3i(pRect->right, pRect->bottom, 0);
  glVertex3i(pRect->left, pRect->bottom, 0);

  glVertex3i(pRect->left, pRect->bottom, 0);
  glVertex3i(pRect->left, pRect->top, 0);

 glEnd();
Run Code Online (Sandbox Code Playgroud)

下面的示例似乎可以解决问题,给我一个锋利的方角; 但是我不能接受它,因为我不知道它为什么这样做......

 glBegin(GL_LINES);

  glColor3b(cr, cg, cb);

  glVertex3i(pRect->left, pRect->top, 0);
  glVertex3i(pRect->right + 1, pRect->top, 0);

  glVertex3i(pRect->right, pRect->top, 0);
  glVertex3i(pRect->right, pRect->bottom + 1, 0);

  glVertex3i(pRect->right, pRect->bottom, 0);
  glVertex3i(pRect->left - 1, pRect->bottom, 0);

  glVertex3i(pRect->left, pRect->bottom, 0);
  glVertex3i(pRect->left, pRect->top - 1, 0);

 glEnd();
Run Code Online (Sandbox Code Playgroud)

任何可以帮助的OpenGL程序员,我会很感激:)

图片是屏幕截图的放大视图.如您所见,左上角未连接.右上角是.看不到左下角和右下角,没有连接.

视口设置为每个坐标1到1个像素.

glDisable(GL_DEPTH_TEST);
glDisable(GL_LIGHTING);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0, __nRendererWidth, __nRendererHeight, …
Run Code Online (Sandbox Code Playgroud)

opengl

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

禁用Eclipse自动完成但保持自动激活

我使用eclipse进行Java开发.我喜欢自动激活功能,因为我可以添加所有字母和数字,这样我就可以在打字时看到班级成员; 使其表现与视觉工作室类似.如果我没有将所有字母和数字添加到自动激活列表中,那么当我在'.'后面输入第一个字母时,它只会弹出类信息.分隔符,然后它消失了.

当我输入变量名称或其他内容时,会出现真正的问题.一旦我命中空间,自动完成就会按照我输入的内容输入一堆废话.这让我疯狂.有什么方法可以关闭它?谢谢

java eclipse intellisense

10
推荐指数
3
解决办法
9164
查看次数

C结构指针解除引用速度

我有一个关于指针解除引用速度的问题.我有这样的结构:

typedef struct _TD_RECT TD_RECT;
struct _TD_RECT {
  double left;
  double top;
  double right;
  double bottom;
};
Run Code Online (Sandbox Code Playgroud)

我的问题是,哪一个更快,为什么?


情况1:

TD_RECT *pRect;
...
for(i = 0; i < m; i++)
{
   if(p[i].x < pRect->left) ...
   if(p[i].x > pRect->right) ...
   if(p[i].y < pRect->top) ...
   if(p[i].y > pRect->bottom) ...
}
Run Code Online (Sandbox Code Playgroud)

案例2:

TD_RECT *pRect;
double left = pRect->left;
double top = pRect->top;
double right = pRect->right;
double bottom = pRect->bottom;
...
for(i = 0; i < m; i++)
{
   if(p[i].x < left) ...
   if(p[i].x …
Run Code Online (Sandbox Code Playgroud)

c c++ pointers local dereference

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

这是最优化的方式吗?C位域

我创建了一个函数来设置或清除DWORD中的特定位数.我的功能有效.我不需要帮助使它工作.但是,我想知道我选择的方法是否是最快的方法.

我很难解释这是如何工作的.有两个包含DWORD的数组,这些数组在DWORD的左侧和右侧填充了位(所有二进制1都是).除了我想要设置或清除的位之外,它创建一个填充了所有位的掩码,然后根据该掩码使用按位运算符设置它们.这样一个简单的任务似乎相当复杂,但它似乎是我想出的最快的方式.它比逐点设置要快得多.

static DWORD __dwFilledBitsRight[] = {
        0x0, 0x1, 0x3, 0x7, 0xF, 0x1F, 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, 0xFFF, 0x1FFF, 0x3FFF,    0x7FFF, 0xFFFF, 0x1FFFF, 0x3FFFF, 0x7FFFF, 0xFFFFF, 0x1FFFFF, 0x3FFFFF, 0x7FFFFF, 0xFFFFFF, 0x1FFFFFF, 0x3FFFFFF, 0x7FFFFFF, 0xFFFFFFF, 0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF
    };

static DWORD __dwFilledBitsLeft[] = {
        0x0, 0x80000000, 0xC0000000, 0xE0000000, 0xF0000000, 0xF8000000, 0xFC000000, 0xFE000000, 0xFF000000, 0xFF800000, 0xFFC00000, 0xFFE00000, 0xFFF00000, 0xFFF80000, 0xFFFC0000, 0xFFFE0000,    0xFFFF0000, 0xFFFF8000, 0xFFFFC000, 0xFFFFE000, 0xFFFFF000, 0xFFFFF800, 0xFFFFFC00, 0xFFFFFE00, 0xFFFFFF00, 0xFFFFFF80, 0xFFFFFFC0, 0xFFFFFFE0, 
        0xFFFFFFF0, 0xFFFFFFF8, 0xFFFFFFFC, 0xFFFFFFFE, 0xFFFFFFFF
    }; …
Run Code Online (Sandbox Code Playgroud)

c bitflags bit-fields

6
推荐指数
1
解决办法
581
查看次数

在Win32中,GDI函数BitBlt和StretchBlt硬件是否加速?

我似乎无法通过搜索得到明确的答案.Win32 blitting操作硬件是否加速(GDI,而不是GDI +).我不知道这些功能如何与图形驱动程序连接.是否有任何函数调用来验证此功能,例如?GetCaps?对于特定的图形设备(win32图形设备),看看这些功能是否正在接收硬件加速?

hardware winapi gdi bitmap bitblt

6
推荐指数
1
解决办法
3249
查看次数

奇怪的例外术语"呕吐"

并不是说具有突破性的重要性或任何东西,但我通常会看到人们提到将一个异常从一个方法转发给调用者,因为抛出"up",从技术上讲,它在调用堆栈中向下抛出,对吧?这只是一些程序员的幽默还是什么?或者是否设想调用堆栈正在增长?

exception throw

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

检测32位双字+双字携带/ C++

假设你有两个32位DWORD x和y,你如何检测它们的总和是否会导致溢出,但是不需要使用本机程序集来检查进位标志.我喜欢算术或二元运算符.我想可能有一些测试方法来解决它.谢谢

c c++ dword overflow addition

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

3D BSP树链接?

互联网上有二维BSP树的信息(即光线投射,所有墙都是平行的).有没有人有任何链接或知道一本书,讨论三维BSP树?

bsp-tree

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

将整数除以16而不使用除法或强制转换

好的......让我改一下这个问题......

如何在不使用除法或转换加倍的情况下获得整数的x 16th ...

optimization division fractions

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