protected void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.input); mInput = (EditText)findViewById(R.id.text_input); ... mInput.requestFocus(); mInput.postDelayed(new Runnable() { @Override…
所谓坑, 就是文档中没有标明的特别需要处理的细节, 工作中会被无故的卡住各种令人恼火的问题. 包括系统级的bug和没有文档化的限制. 继Android的各种坑后, 现在做Amazon平台, 遇到的坑很多, 这里记录一下备忘: 先汇总下Android Native下的各种问题, 当然有些限制有明确文档说明,不算坑,但是限制太多还是很不爽: android平台下的某些限制: android下的各种坑 (我的C/C++/汇编/计算机原理博客) OBB的各种bug: OBB的解决方案 arm gcc t…
https://developer.android.com/training/system-ui/navigation.html View decorView = getWindow().getDecorView(); // Hide both the navigation bar and the status bar. // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as // a ge…
ISO/IEC 14882:2003: 9.6 Bit-fields [class.bit] A member-declarator of the form identifieropt : constant-expression specifies a bit-field; its length is set off from the bit-field name by a colon. The bit-field attribute is not part of the type of the…
先贴一段C++标准(ISO/IEC 14882:2003): 5.2.1 Subscripting: 1 A postfix expression followed by an expression in square brackets is a postfix expression. One of theexpressions shall have the type “pointer to T” and the other shall have enumeration or integral…
JNI: invoke java dialog with native callback: store native function address in java, and invoke native another method to this function. key points: 1.Store callback function pointer(address) in java: to support multiple calls, use data block for each…
对于用户没有定义dctor(包括其所有成员)的类来说, new CLASS[n] 可能会直接请求sizeof(CLASS)*n的空间. 而带有dctor的 类, 因为delete[]的时候要逐个调用析构函数, 要保证调用n次析构. C++标准没有指定如何具体处理这种情况. 而对于很多数编译器来说, 是在请求的内存前面, 保存对象的个数n(放在其头部). sizeof(int)  sizeof(CLASS)  ...       n Object[0] Object[1] Object[2] ..…
Bionic libc doesn't load dependencies for current .so file (diff from Windows or Linux) so a explicit calling of Java's System.loadLibrary() is needed, in order to load depedency libraries. otherwise the original .so will fail to load. JNI_OnLoad wil…
////////////////////////////////////////////////////////////////////////// //Java code snippet //get APK's versionCode in AndroidManifest.xml public int getVersionCode() { int versionCode = 1; try{ PackageInfo packageInfo = this.getPackageManager().g…
UE4 的渲染分为两个模式1.编辑器是同步绘制的 2.游戏里是FParallelCommandListSet并行派发的. mesh渲染也分两类,static mesh 使用TStaticMeshDrawList 来绘制, skinned mesh是用DrawingPolicyFactory::DrawDynamicMesh来画.这两类绘制不管是异步还是同步都会调用.具体可以参考DepthRendering.cpp 实际上,有在DX12/Vulkan/Metal 这些支持paralle commi…
由于semantic的使用,我们有理由相信 vertex shader的output 和 pixel shader的input是按照semantic来匹配的,而跟传入顺序无关.印象dx9时代是这样. 虽然习惯上使用共用的sruct (VS_OUTPUT)来保证senamtic修改的同步,便于维护,但这个不是必须的. 但是最近工作中,在UE4的dx11上写自定义shader,因为VS和PS分开两文件,所以干脆没有用struct,而是直接写到parameter 里,但是遇到一个诡异的问题:参数的值不…
1.基本问题和相关 Common Techniques to Improve Shadow Depth Maps: https://msdn.microsoft.com/en-us/library/windows/desktop/ee416324(v=vs.85).aspx Cascaded Shadow Maps https://msdn.microsoft.com/en-us/library/windows/desktop/ee416307(v=vs.85).aspx Soft shadow…
注意添加APP_ID <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_ve…
Linux常用命令之envsubst https://blog.csdn.net/banche163/article/details/101369495 Linux中的EAGAIN含义 https://blog.csdn.net/memo_weiwei/article/details/7691226 Linux中的虚拟设备/dev/null./dev/zero./dev/random和/dev/urandom https://blog.csdn.net/sinat_26058371/articl…
Camera的raw data一般都是YUV420的格式,数据的特点是: YUV 4:2:0采样,每四个Y共用一组UV分量 YUV420格式: 先Y,后V,中间是U.其中的Y是w * h,U和V是w/2 * (h/2) 如果w = 4,h = 2,则: yyyy yyyy uu vv 内存则是:yyyyyyyyuuvv 需要占用的内存:w*h(Y占用内存大小) + w * h/4(U占用内存大小) + w * h/4(V占用内存大小)   = w*h * 3 / 2 所以YUV420 数据在内存…
/* * YYYY-MM-DD类型的字符串日期比较 * */ String.prototype.compareAsDate=function(dateStr){//prototype原型方法 var d1Arr=this.split('-');// this是引用调用此方法的String对象 var d2Arr=dateStr.split('-'); var date1=new Date(d1Arr[0],d1Arr[1],d1Arr[2]).getTime(); var date2=new D…
jboolean result = env->CallBooleanMethod(ShopDataAndroid.IAPBridge_Object, ShopDataAndroid.IAPBridge_getProductList); : -; // this is not gonna work http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/types.html#wp9502 因为JNI_TRUE (1) 和JNI_FALSE (…
对于一个Java 类 class MyClass { ... public native boolean nativeMyFunc(long param); } 一般来说native对应的声明是这样: JNIEXPORT jboolean JNICALL Java_com_organisation_MyClass_nativeMyFunc(JNIEnv *env, jobject thiz, jlong param); 然后最近遇到个 class My_Class { ... public na…
1. libssl https://github.com/guardianproject/openssl-android 然后执行ndk-build 2.libcurl 源代码组织结构, 下面的makefile要依赖这个结构. 因为curl依赖openssl, 所以需要先编译openssl: src/openssl-android src/curl-android 下载curl的代码, 并放入src/curl-android/jni 下. 本来想用cygwin来运行configure, 生成an…
https://developers.google.com/games/services/cpp/api/structgpg_1_1AndroidSupport For apps which target android 4.0+ (API Version greater than or equal to 14), most of these function calls are unnecessary. For such apps only the OnActivityResult funct…
Update Android SDK build tool to latest can solve my problem.…
https://www.khronos.org/opengles/sdk/docs/man3/html/glInvalidateFramebuffer.xhtml 这个在GLES2.0上只有Extension: https://www.khronos.org/registry/gles/extensions/EXT/EXT_discard_framebuffer.txt 原理跟D3D9 的Present参数(D3DSWAPEFFECT_DISCARD)类似: http://msdn.micros…
因为TAA要使用上一帧的历史结果,那么在相机移动的时候,颜色就会有残留,出现ghosting(残影). 由于上一帧历史是累积的,是由上一帧的直接渲染结果和上上帧的结果做了合并,所以ghosting并不是一帧就消失,要累积一段时间才会消失. 处理ghosting有很多方法,比如depth based rejection和velocity weighing,  现在最流行的方法,大概也是最好的方式是用neighbor AABB clip. 1.首先取当前帧,当前像素周围的几个颜色,比如4个颜色,得到…
先贴一个UE4 TAA的slidehttps://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf 里面细节问题很多,先记录一下目前想到和遇到的问题,便于备忘,后面有空的话再记录. TAA用到的Velocity和抖动对精度要求比较高, 特别是大场景下误差容易比较大,UE4做了一系列的处理来保持精度. 投影矩阵的精度 static const FMatrix InvertProjectionMatr…
最近在用UE4的Instancing, 发现限制很多. Unity有instancing的attribute array (uniform/constant buffer),通过InstanceID来访问每个instance的数据,实现每个实例的不同的参数(通常的一种做法). 然而Unreal没有这样的功能,只有一些instancing的vertex buffer. shader: #if USE_INSTANCING && !USE_INSTANCING_EMULATED float4…
忙了大半年, 终于出来了. iOS: https://itunes.apple.com/us/app/nba-2k16/id984732818?mt=8 Android: https://play.google.com/store/apps/details?id=com.t2ksports.nba2k16android 我主要负责安卓的东西, 帮忙修复了iOS64位的一些bug. 去年安卓版本,只发了amazon商店, 今年改google play了. 目前声音仍然是最大问题, OpenSLES…
目 录1. 服务器虚拟化的相关配置建议 11.1. 服务器的基本配置建议 11.1.1. CPU配置 11.1.2. 服务器内存配置 21.1.3. 物理网卡配置 21.1.4. 服务器磁盘配置 21.1.5. vSAN服务器磁盘配置 31.1.6. 服务器配置参考 31.2. 集群配置规划 41.2.1. 管理类集群 41.2.2. 业务类集群 41.2.3. 边界类集群 51.2.4. vSAN集群 51.3. 存储配置规划 51.4. 机柜配置规划 51.4.1. 高密度机柜 61.4.2…
前面几篇阴影相关的: https://www.cnblogs.com/crazii/p/5443534.html 这个是在做bh3 MMD角色自阴影时的笔记 https://www.cnblogs.com/crazii/p/7227269.html 这个是blade的CSM笔记和相关思考 这次在项目里对unity又做了新的改进,  整体思路还是沿用第二篇的方式: 1.使用足够长/远的视锥(view/projection)剔除场景 (渲染shadow map总是要剔除的,所以先用足够远的视锥,保证…
Activity的生命周期分析 典型情况下的生命周期.是指在用户参与的情况下,Activity所经过的生命周期的改变. 异常情况下的生命周期.是指Activity被系统回收或者由于当前设备的Configuration发生改变从而导致Activity被销毁重建,异常情况下的生命周期的关注点和典型情况略有不同. 典型情况下的生命周期 onCreate:表示Activity正在被创建. onRestart:表示Activity正在重新启动. onStart:表示Activity正在被启动,即将开始,这…
Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activity搬上来了,也确实,和Activity打交道的次数基本上是最多的,而且他的内容和知识点也是很多的,非常值得我们优先把他掌握,Activity中文翻译过来就是"活动"的意思,但是主席觉得这样翻译有些生硬,直接翻译成"界面"可能更好,的确,Activity主要也是用于U…