小编Cod*_*lad的帖子

Javascript:常量属性

在javascript中,我可以声明对象的属性是常量吗?

这是一个示例对象:

   var XU = {
      Cc: Components.classes
   };
Run Code Online (Sandbox Code Playgroud)

要么

   function aXU()
   {
      this.Cc = Components.classes;
   }

   var XU = new aXU();
Run Code Online (Sandbox Code Playgroud)

只是把"const"放在它前面,不起作用.

我知道,我可以声明具有相同名称(这也将是样的常数)的函数,但是我正在寻找一个更简单,更可读的方式.

浏览器兼容性并不重要.它只需要在Mozilla平台上工作,就像Xulrunner项目一样.

非常感谢!

干杯.

javascript constants object

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

webgl:使用透明度(alpha)时的白色边框

渲染具有Alpha通道的纹理时,非透明部分周围会出现白色边框(边框似乎是alpha> 0且<1的像素):

在此输入图像描述

原始纹理在Illustrator中创建并导出为png.这里是:

在此输入图像描述

(好吧,似乎stackoverflow改变了图像,调整了不完全不透明/透明的像素,所以这里是一个链接)

它可能是混合,虽然我不知道设置有什么问题:

gl.enable(gl.BLEND);
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
Run Code Online (Sandbox Code Playgroud)

[更新]

这是一个渲染版本,其中我在纹理的左侧部分添加了一个alpha渐变(因此它从0不透明度变为1直到一半)

在此输入图像描述

此纹理是此位置渲染的唯一纹理.它似乎在a = 0.5附近最白.真的很奇怪.背景只是一个清除的颜色:

gl.clearColor(0.603, 0.76, 0.804, 1.0);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
// render objects here
Run Code Online (Sandbox Code Playgroud)

深度函数看起来像:

gl.enable(gl.DEPTH_TEST);
gl.depthFunc(gl.LEQUAL);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?非常感谢.

[更新2]

回答我自己的问题:当画布的背景颜色或html页面的主体为白色时,会产生效果.不过,我没有解释.

graphics blending opengl-es webgl

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

C++错误处理 - 使用std :: pair或std :: tuple返回错误代码和函数返回的缺点

在没有进入一般异常与错误代码讨论的情况下,您认为使用std::pairstd:tuple返回多个值的缺点是什么,即函数的返回值和错误/成功代码,类似于Go开发人员显然有多少错误处理

这种方法显然具有不必使用函数返回值或错误代码的参数的优点(取决于您喜欢它的方式).

c++ error-handling tuples return-value std-pair

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

两个第 3 方库中 uint32 的 Typedef 重新定义 (C2371)

在我的应用程序中,我使用Box2DSpidermonkey。这两个库都定义了 uint32 类型,这显然在同一编译单元中使用这两个库时给我带来了编译器错误。

b2settings.h (Box2D): typedef unsigned int uint32;

jsotypes.h (Spidermonkey): typedef unsigned long uint32;

有什么方法可以解决此冲突而不需要更改第 3 方库的标头吗?

我很感谢每一个提示!

c++ typedef spidermonkey box2d

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

如何通过cdecl调用约定来破坏ESP?

我的应用程序崩溃了,因为我调用的库函数更改了ESP,尽管它被声明为cdecl.

库(libclang.dll)是使用MinGW编译的,我在VC++项目中使用它.函数导出为C函数,Dependency Walker告诉我他们有正确的cdecl调用约定.使用dllimport将函数导入到我的项目中,包括Clang的"index.h"文件.似乎并非所有功能都在破坏ESP,因此某些功能会成功,其他功能会导致崩溃.

这是一个工作函数的汇编:

// call to clang_getNumDiagnostics(TU); - works!
5AF3EFAB  mov         esi,esp  
5AF3EFAD  mov         eax,dword ptr [ebp-30h]  
5AF3EFB0  push        eax  
5AF3EFB1  call        dword ptr [__imp__clang_getNumDiagnostics (5AF977E0h)]  
5AF3EFB7  add         esp,4  
5AF3EFBA  cmp         esi,esp  
5AF3EFBC  call        @ILT+7135(__RTC_CheckEsp) (5AF16BE4h)
Run Code Online (Sandbox Code Playgroud)

以下函数调用将更改esp(添加4),从而导致由于__RTC_CheckEsp中的运行时检查而导致崩溃.

// call to clang_getTranslationUnitCursor(TU); - fails!
5AF3EFC1  mov         esi,esp  
5AF3EFC3  mov         eax,dword ptr [ebp-30h]  
5AF3EFC6  push        eax  
5AF3EFC7  lea         ecx,[ebp-234h]  
5AF3EFCD  push        ecx  
5AF3EFCE  call        dword ptr [__imp__clang_getTranslationUnitCursor (5AF9780Ch)]  
5AF3EFD4  add         esp,8  
5AF3EFD7  cmp         esi,esp  
5AF3EFD9  call        @ILT+7135(__RTC_CheckEsp) (5AF16BE4h)  
Run Code Online (Sandbox Code Playgroud)

我已经发布了一个问题,对于这个问题,但认为我特地问了一下调用约定CDECL检索有关的ESP …

c++ assembly mingw calling-convention visual-c++

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