在做Android的OpenGL ES应用时,经常会遇到接入各种支付SDK等弹出UI导致当前横竖屏状态切换的问题,比如游戏是横屏landscape的,而支付SDK弹出的View是竖屏portrait的,这时如果不插手处理的话,系统会对GL的表面缓冲进行重新创建的处理,比如横屏的800×480会被重新创建为480×800,这样就会导致绘图错误,效果可以参考下面stackoverflow上贴出的图片。
解决这个问题的方法是:
Continue reading…
欢迎留言、转载请注明出处
在做Android的OpenGL ES应用时,经常会遇到接入各种支付SDK等弹出UI导致当前横竖屏状态切换的问题,比如游戏是横屏landscape的,而支付SDK弹出的View是竖屏portrait的,这时如果不插手处理的话,系统会对GL的表面缓冲进行重新创建的处理,比如横屏的800×480会被重新创建为480×800,这样就会导致绘图错误,效果可以参考下面stackoverflow上贴出的图片。
解决这个问题的方法是:
Continue reading…
Unity3D的surface shader用起来很是方便,比直接的cg写起来省事的多,而且有很多现成的东西可以include,比如光照部分就是,常用的lambert, blinn phong都提供了现成的实现,但是最近在做specular时发现,内置(https://unity3d.com/unity/download/archive下载全部内置shader source或 Windows, Mac)的LightingBlinnPhong在移动设备上使用时会出现高光曝掉的问题!
简单看lighting.cginc中的相关函数:
主板是微星的770T-C35,机箱是一款世纪之星的不知道什么型号的,HD Audio前面板连接线已经接好主板,有防呆也不可能插反,但是耳机接入前面板3.5插口后就是没反应,查看了HD Audio控制面板,显示如下:
前面板显示没有插入,也没有声音,检查了前面板接线盒主板说明书后意识到一个问题:可能接线或插口并没有按有sensor的方式连接,也就是说前面板的插口不能像后面板载的那样实时显示插头插入拔出情况,所以前面板接口一直没有声音,于是关闭掉了检测: Continue reading…
在使用TMT,完美解码的PotPlayer, MPC HC, KMP等播放器看蓝光原盘和1080P mkv等视频时发现如果开启硬解的话,会出现“绿屏”的问题!出现问题的机器是AMD X2 245的U和HD4850显卡,Win8 64位系统,查了下资料这块显卡对视频硬解是支持的,于是第一反应是显卡驱动,试遍了amd官网的各种legacy驱动(HD4000系列已经被列入legacy了)和guru3d上的各种第三方修改,增强驱动后,均没有解决,不是绿屏就是卡死,DXVA Checker也检查了显示没问题的,然后一度以为legacy了后amd的新系统64位驱动就渣掉了,快要放弃的时候发现guru3d论坛上有人提到Win8的Hyper-V会导致硬件出问题,于是恍然大悟,之前为了玩WinPhone8的SDK和模拟器,开启了Win8自带Hyper-V虚拟机组件,于是果断卸掉,重启后再用各种播放器硬件一切恢复正常,看到CPU占用率下降,应用不卡真是一件非常舒心的事…
之前在测试Eclipse ADT的Custom debug keystore自定义调试证书的时候,发过一篇关于调试证书规格的博文:Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和alias命名以及alias密码都是有规矩的。其实Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和keystore的指纹hash来识别的(百度地图SDK、Facebook SDK等等…),这样如果使用默认自动生成的debug keystore的话就会给开发调试工作带来一些麻烦。这时可以通过修改正式的release keystore,生成一份“遵守规矩”的临时自定义调试证书给开发时用,就方便多了,具体方法如下:
最近在研究百度地图API的应用,试验了iOS SDK后又开始试验Web端的JS版应用,做到在地图上通过Ajax异步调用方式从后端取得数据后,添加标注并给标注添加对应的点击时间alert出此位置的信息时遇到了一个Javascript问题,最开始的code是这样写的:
$.ajax({
type : "get",
url : urlStr,
async : true,
dataType : "json",
error : function() {
alert('No valid location record!');
},
success : function(json) {
for(var i=0;i<json.length;i++)
{
var point = new BMap.Point(json[i].longtitude, json[i].latitude);
var marker = new BMap.Marker(point); // 创建标注
// 添加点击事件侦听
mark.addEventListener("click", function()
{
alert('记录时间: '+json[i].logTime+' 定位时间: '+json[i].gpsTime);
return;
});
map.addOverlay(marker); // 将标注添加到地图中
}
var point = new BMap.Point(json[0].longtitude, json[0].latitude);
map.centerAndZoom(point, 15);
}
});
这样运行时,点击任意一个标注后就会收到浏览器的js脚本错误,提示json[i].logTime还有后面同样的gpsTime部分有问题,检查了一下,发现Ajax请求成功后的函数内循环遍历数据时的i是局部变量,而每一个mark的click侦听函数内的i都为对同一个变量的引用,也就是说循环遍历后每次点击触发执行这段响应代码时的i都是同一个数,而不是认为的对应每一个mark时的i,也自然就取不到所期望的数据了!
Continue reading…
错误现象如图所示:
TF31003:您尚未输入必需的凭据,或您的用户账户没有连接到XXX处的Team Foundation Server的权限,请要求服务器管理员为您的账户添加适当的权限。