力为的博客

OpenGL|ES|WebGL|Vulkan显示引擎 ACIS|OpenCASCADE几何造型 CAD|CAE|CAM工程应用

排序:
默认
按更新时间
按访问量

Canvas2D绘制填充面

组成面的loop分为outer loop和inner loop,其中outer loop一般为逆时针,inner loop一般为顺时针。如果inner loop的顺序与outer loop一致,则不内部的loop会失效。 <!DOCTYPE html>...

2018-05-23 12:50:19

阅读数:56

评论数:0

GDI设置字体旋转的方法

方法1:通过设置WorldTransform进行变换:angle为文字旋转的角度position为文字的位置 XFORM xForm; xForm.eDx = float(position.x); xForm.eDy = float(position.y); xForm.eM...

2018-04-02 13:27:57

阅读数:28

评论数:0

Entity Framework 和 Sqlite

记录在使用Entity Framework 和 Sqlite遇到的坑

2017-06-15 13:33:45

阅读数:1375

评论数:0

Sketchup文件纹理提取

除了材质上的颜色,材质上的纹理(Texture)是我们最为关心的元素。 控制纹理能够在Face上正确的显示,可以由两个方式控制: 1)修改texture coordinates(UVQ)的值 2)修改Texture上的Scale 从Sketchup的SDK可以获取上面的两个数据,并且Sketchu...

2017-05-18 11:10:13

阅读数:919

评论数:0

可变参数宏与枚举

可变参数的宏与枚举结合会产生什么样子的火花?有时候定义了枚举需要知道枚举值对应的字符串表达,有点像反射的机制。该如何简洁的实现而又不容易出错?

2017-04-13 11:48:35

阅读数:422

评论数:0

Web Worker Best Practices

使用Web Worker可以把一些比较计算量相对大的阻塞浏览器响应的计算放在单独的线程里计算。请求优化构造Worker的时候需要给定js的链接URL,worker内部请求js运行代码。假如worker有若干个,但使用同一个js文件,也仍然会请求js多次。听起来就不是个好的方法。能够做到只请求一次w...

2016-07-20 14:20:53

阅读数:1022

评论数:0

MFC误报内存泄露的修复

在debug状态退出程序的时候,VS会在输出窗口列出可能的内存泄露的地方。MFC中使用DEBUG_NEW能够更方便的定位泄露的地点。但假如MFC的dll释放“”过早“”,DEBUG_NEW记录的内存分配信息就会不灵了。那什么情况下导致MFC的DLL过早释放呢?有这样一种情况:以#pragma co...

2016-07-02 21:52:18

阅读数:1423

评论数:0

以传值方式传参数引发的栈溢出

考虑到性能问题,如果是自定义的class对象,一般都会以传引用/地址的方式传递参数。如果按照这样的信条写程序,就不会遇到下面遇到的问题了。最近在帮一个朋友查看一个bug,现象是这样的:执行一个函数的时候,抛出一个stack overflow的异常。在函数体的第一行设置端点,执行的时候,程序停止响应...

2016-07-02 11:24:25

阅读数:1183

评论数:0

大规模WebGL应用引发浏览器崩溃的几种情况及解决办法

一般的Web应用基本上不会导致浏览器崩溃,写Javascript代码也不需要管理内存资源,基本也不需要考虑内存“泄露”的问题。随着H5的崛起,越来越多的原本在桌面端的软件也改头换面迁移到Web上来,比如三维图形类的应用。在Web端显示大规模三维模型不仅仅是三维显示引擎的问题,也涉及到数据组织、任务...

2016-06-04 17:17:00

阅读数:22599

评论数:1

Vulkan的分层设计

Vulkan驱动层提供了简单高效的API。作为Vulkan API的使用者,我们要严格遵循Vulkan API的使用规则。如果我们违反了这些规则,Vulkan只会返回很少的反馈,它只会报告一部分严重和重要的错误,比如内存不够啦、指针越界啦等等。 如果我们想获取其他更多的错误提示信息怎么办? 这就需...

2016-05-11 10:09:09

阅读数:1650

评论数:0

异步请求引发的Chrome死锁

浏览器支持的并发异步请求数目是有限的,当需要的资源过多时候(远远大于并发数目),就需要自己管理XHR请求。在实现自己的XHR的Manger时候,当请求数目达到2000多的时候,经常会遇到chrome的xhr状态为pending的情况。开始猜测是不是因为请求的数目太多所致。于是测试顺序请求2000多...

2016-04-15 15:45:54

阅读数:4622

评论数:1

dynamic initializer和全局变量

“慎用全局变量,包括全局静态变量“ 是众所周知的原则,因为全局变量除了会增加程序的维护成本。如果全局变量是个复杂的对象,并且还使用其他的全局变量,那情况就变得复杂的多。因为全局变量初始化的顺序不是coder所能掌控的。而初始化全局变量就是所谓的”dynamic initializer“,即动态初始...

2016-03-23 15:26:09

阅读数:1827

评论数:1

Vulkan API基本概念

Instance具体的Vulkan应用由“实例”表示。一个程序中可以创建多个实例,实例之间相互独立,互不干扰。Vulkan实例由驱动装载器(loader)管理。装载器负责发现GPU设备,是多设备驱动的组合体。当调用API创建Vulkan实例的时候,Vulkan SDK内部会经由loader查找GP...

2016-03-05 22:36:30

阅读数:8158

评论数:1

初识Vulkan

Vulkan是Khronos组织制定的“下一代”图形显示API,是与DirectX12可以匹敌的GPU API标准。目前,Vulkan 1.0标准已经完成并正式发布。 上一代的OpenGL|ES并不会被遗弃,还会继续发展,很有可能OpenGL|ES变为Vulkan的简化API。

2016-03-05 14:47:27

阅读数:10754

评论数:8

ActiveMQ + NodeJS + Stomp 极简入门

前提 安装ActiveMQ和Nodejs测试步骤1.执行bin\win32\activemq.bat启动MQ服务2. 打开http://localhost:8161/admin/topics.jsp用户名和密码都是 admin3. 下载Stompnpm install stomp-client4....

2016-01-30 17:14:01

阅读数:7066

评论数:1

优化Javascript数据遍历

问题M是一个对象的集合,没个对象拥有唯一的字符串类型的IdN是Id的集合。从M中过滤掉Id不在N中的对象。假如M有50w个数据,N中可能是0~50w任意的数据。方案1使用数组保存Id的集合。这样就有两种方式遍历1.1 N = [id, ...];for(var m in M)   for(var ...

2016-01-26 16:51:56

阅读数:1709

评论数:4

使用std::vector优化点云动画显示一例

1. 准备使用std::vector应该知道几点:(1)内存连续的容器,有点像数组(2)与std::list相比,插入和删除元素比较慢- 因为数据迁移(3)添加元素可能会引发内存分配和数据迁移。2. 问题AnyCAD::API::PointCloudNode使用FloatList  及std::v...

2015-11-03 16:37:17

阅读数:2172

评论数:1

IE下的deflate模式

浏览器有一个非常有用的特性:自动解压。在使用AJAX请求数据的时候,数据在服务器端压缩传输,在浏览器端自动解压,请求直接得到解压后的结果。在Request Header中,一般会列出浏览器支持的压缩格式,如ChromeAccept-Encoding:gzip, deflate, sdchIE11和...

2015-10-10 13:27:04

阅读数:2070

评论数:1

使用jQuery AJAX读取二进制数据

READING BINARY DATA USING JQUERY AJAXhttp://www.henryalgus.com/reading-binary-files-using-jquery-ajax/Query is an excellent tool to make web developm...

2015-10-10 12:44:45

阅读数:12311

评论数:0

require.js使用步骤

以superagent为例1.设置lib目录requirejs.config({ baseUrl: 'libs' });2. 使用SuperAgent    require(['superagent'], function (request) {        var req = request....

2015-09-29 14:45:08

阅读数:1761

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭