- 博客(42)
- 资源 (9)
- 收藏
- 关注
转载 Scipy:高端科学计算
原文地址 : 点击打开链接作者:Adrien Chauve, Andre Espaze, Emmanuelle Gouillart, Ga?l Varoquaux, Ralf Gommers翻译自:scipy lecture notes译者表示最后部分没怎么看懂,此文档维护中……Scipyscipy包包含致力于科学计算中常见问题的各个工具箱。
2017-09-13 09:49:49
1479
原创 gl_Position is not accessible in this profile
可能是你把本应该在 vertex shader 里的内置变量用在 fragment shader里了 ,或者你把fragment shader 和 vertex shader 搞反了。 我的问题是由于脚本文件没改变,把vertex shader 同时当成vertetx shader 和 fragment shader 了。
2017-03-21 14:29:39
2111
原创 ByteBuffer
ByteBuffer有两种类型,一种是创建ByteBufferByteBuffer b1 = ByteBuffer.allocate(size);进入 ByteBuffer的allocate方法: public static ByteBuffer allocate(int capacity) { ... return new HeapByteBuffer(capaci
2017-03-15 22:46:29
1873
2
原创 Directshow Filter 链接过程
最近要用到一个TransformFilter 做一些转换,就看了些Directshow的东西,一直困惑于Filter之间是怎么进行连接协商的,那些必须要重写的CTransformFilter方法有什么用,又是什么时候被调用的也感到迷惑,现在就记录一下自己的探索过程。Filter连接的本质就是Filter的Pin与Pin之间的连接,首先上游Filter的OutputPin的CBasePin::C
2017-03-15 22:36:47
604
原创 Camera2 YUV420_888
Camera2 YUV420_888转RGB官网文档介绍Android PAI 对 YUV420_888的介绍 ,大致意思如下: 它是YCbCr的泛化格式,能够表示任何4:2:0的平面和半平面格式,每个分量用8 bits 表示。带有这种格式的图像使用3个独立的Buffer表示,每一个Buffer表示一个颜色平面(Plane),除了Buffer外,它还提供rowStride、pixelStrid
2017-01-23 16:06:35
16121
7
原创 Android IllegalMonitorStateException
写了好久的C++ 然后Java又茫然了, 今天在学习Handler的时候, 在子线程中使用Looper.prepare() , 主要是是调用Object的wait() 和 notifyAll()、notify()时AS报如下错误:IllegalMonitorStateExceptionObject 这些方法都是先获得锁,然后再释放锁,所以在使用时必须将它们放在锁里。 可修改如下:synchro
2016-11-29 15:02:43
836
翻译 vulakn教程--Drawing a Triangle--Draw--Render and presentation
原文地址 : vulkan-tutorialRendering and presentation接下来我们将使用drawFrame() 函数将三角形显示到屏幕上。 drawFrame()要做如下几件事:从Swap Chain 请求一个image。执行带有这个image的command buffer ,这个image曾被当做attachment存储在framebuffer中(Execute t
2016-09-21 23:11:29
1907
原创 函数指针
和其他简单变量一样,编译阶段会给函数代码块分配一块内存,内存的首地址其实就是函数的名字,通常也称作指向函数的指针,即函数指针。如下 :int max(int a,int b){ int result = a > b ? a : b; cout<<result<<endl;}这个函数返回a , b两数的最大者,我们可以为定义一个指向这个函数的指针fun:int (*fun)
2016-09-20 23:58:29
373
翻译 vulakn教程--Drawing a Triangle--Draw--CommandBuffer
原文地址 : vulkan-tutorialCommand buffers在Vulkan中,像绘画命令、内存转换等操作并不是直接通过方法调用去完成的,而是需要把所有的操作放在Command Buffer 里。这样的一个好处就是:那些已设置好的具有难度的绘图工作都可以在多线程的情况下提前完成。Command poolsCommand pools 管理Command buffer 的内存而且Comma
2016-09-20 20:53:46
1544
翻译 vulakn教程--Drawing a Triangle--Draw--Framebuffer
原文地址 : vulkan-tutorialFramebuffers我们已在之前的章节中多次提到FrameBuffer 并且在创建Render Pass时,我们期望拥有一个和Swap Chain 里image具有相同格式(format)的FrameBuffer。 接下来我们就将创建这种FrameBufefr. 我们将attachments包裹在FrameBuffer中,FrameBuffer 通
2016-09-19 20:49:20
915
翻译 vulakn教程--Drawing a Triangle--Pipeline--Render passes
原文链接 : vulkan-tutorialRender Pass在创建Pipeline 之前我们必须告诉Vulkan在渲染时要使用的FrameBuffer 附件(attachments),需要定义使用color buffer 以及 depth buffer attachments的数量,要使用多少个采样(samples)以及应该如何处理采样的内容。所有这些信息都可以填写在Render Pass里
2016-09-15 21:29:40
1066
翻译 vulakn教程--Drawing a Triangle--Pipeline--Fixed function
原文地址 : vulkan-tutorial Fixed functions这一章节的内容大部分设计Pipeline中不可编程部分的配置。Vertex inputVkPipelineVertexInputStateCreateInfo 代表我们传递给Vertex Shader 顶点数据的格式,它涉及以下两个方面:顶点数据的描述(Bindings) :数据间的间
2016-09-14 21:17:48
1700
翻译 vulakn教程--Drawing a Triangle--Pipeline--Shader Module
原文地址 : vulkan-tutorial着色器模块 Shader modulesVulkan 和之前的图形API有所不同,为了避免不同厂商移植代码的复杂性,Vulkan的着色器代码(shader code)采用字节码格式(bytecode) SPIR-V,而非人类可以阅读的文本格式,如GLSL(opengl 的一套体系)等。但这并不意味着我们要亲自手写字节码, 幸运的是LunarG SDK 已
2016-09-12 21:47:15
1373
翻译 vulakn教程--Drawing a Triangle--Pipeline--Introduction
原文链接: vulkan-tutorialPipeline前言(Introduction)Pipeline 是指图形系统对图像信息进行一系列处理的过程,这些图像信息包括顶点信息(坐标、法向量…),像素信息(图像、纹理…)等,最终这些处理好的数据将被放到帧缓冲区(FrameBuffer)中供应用获取。 图1-Pipeline过程a.输入装配器(Input assembler) : 从Vertex
2016-09-10 22:25:45
866
翻译 vulakn教程--Drawing a Triangle--Presentation-- Image views
原文地址: vulkan-tutorialImage views为了使用VkImage,不管是在Swap Chain 还是在Pipeline 中,我们都必须创建VkImageView,就如同它的字面意思一样,imageView是image的一个 view.他描述了我们如何访问image、访问image的哪一部分等。这一部分我们将创建VkImageViews , 并把它用作 color targe
2016-09-09 20:52:02
774
翻译 vulakn教程--Drawing a Triangle--Presentation--SwapChain
原文链接: Vulakn-tutorialSwapChain这一章节我们将学习这样一种结构/基础(infrastructure),它能为我们提供要渲染的图片,然后渲染结的果可以显到屏幕上。这样的结构就是Swap Chain , Swap Chain必须被Vulkan显示的创建。从本质上讲,Swap Chain就是一个图片的队列(a queue of images),这里的图片等着被
2016-09-08 19:49:19
2263
翻译 vulakn教程--Drawing a Triangle--Presentation--Window surface
原文链接: Vulkan-tutorialWindow surface因为Vulkan是平台(platform)无关的,它不能直接与平台窗体系统(window system)进行通信,为了连接Vulkan和窗体系统,使得被渲染后的结果显示到屏幕上,我们需要使用WSI扩展(Window System Integration extensions),在这个章节我们将使用VK_KHR_surface,它提
2016-09-06 21:45:50
1347
翻译 vulakn教程--Drawing a Triangle--Set up--Logical Device
原文链接 : Vulakn-tutorialLogical Device只有Physical Device 还不行,我们还需要创建Logical Device 来与它相联。Physical Device的创建和VkInstance的创建过程差不多,需要明确我们所需的特性(features)、extensions、Validation layers 、queue等。声明 :VDeleter<VkDev
2016-09-05 22:53:55
929
翻译 vulakn教程--Drawing a Triangle--Set up--Physical Device and Queue Family
原文链接:Vulkan-tutorialPhysical Device and Queue好了,我们已经用VkINstance初始化了Vulkan API,是时候选择一个具有我们需要的特性的显卡了(graphics card),事实上,我们可以同时使用多个显卡,为了简单起见,我们只选择第一个满足我们要求的显卡。VkPhysicalDevice physicalDevice=
2016-09-04 19:09:05
1435
翻译 vulakn教程--Drawing a Triangle--Set up--Validation layers
原文链接:Vulkan-tutorialValidation layers 验证层为什么要用Validation layers ? Vulkan的设计理念是:使驱动(driver)的负担最小化。一个明显的表现就是它有限的错误检测,像设置错误的枚举值或者将必须的函数参数传递为空指针(NULL)这类简单的操作都没有明确的处理,Vulkan只是简单的Crash或者产生一些未定义的行为(undefined
2016-09-04 10:04:43
1866
翻译 vulakn教程--Drawing a Triangle--Set up--Instance
InstanceCreating an instance在 initVulkan 里添加函数createInstance :void initVulkan() { createInstance();}声明变量:private:VDeleter<VkInstance> instance {vkDestroyInstance};然后需要填充两个结构体: VkApplicationInfo和
2016-09-03 11:57:41
1169
翻译 vulakn教程--Drawing a Triangle--Set up--Base code
Base codeGeneral structure上一章通过构建一个窗体来完成VS对Vulkan的配置,并将配置好的工程设置为模板以备后续的使用。在上一章的最后我们用这个模板创建了一个名为:Hello Triangle 的新工程,现在让我们为这个工程搭建一个框架。#include <iostream>#include <stdexcept>#include <functional>class
2016-09-03 11:02:34
1183
翻译 vulkan 教程--Development environmen
原文链接 : vulkan-tutorial 。本打算直接在Android上学习Vulkan,但奈何Android 上的资料实在是太少,也可能我的网被墙了没找到。目前找到了一些sample code:GitHub ,也没什么教程,所以就打算先在PC上搞一阵子,毕竟PC上有这篇教程,熟悉之后再转到Android。因为公司工作机上是Windows 7系统,所以这里重点强调Vulkan
2016-09-02 12:58:54
2252
翻译 Vulkan 教程--Overview
原文地址 Vulkan-tutorial 。Origin of Vulkan和其他图形API一样,Vulkan也被设计成跨平台。但是以前的这些图形API在设计时和当时的显卡关系密切,只是提供了一些可配置的固定功能。编程人员不得不在显卡厂商的怜悯之下,使用所谓标准格式的顶点数据来勉强进行光照( lighting )和着色( shading )操作。随着
2016-09-01 15:44:23
2573
2
翻译 Vulkan教程--Introduction
这是一篇告诉你如何使用Vulkan 图形(Graphics)和计算(Compute)API 基础的教程。Vulkan是一个来自 Khronos group的新的图形API,它使你能更好的描述你的应用的目的,它为你的应用带来更高的性能,和现存的API( OPengl 和 Direct3D )相比,Vulkan 具有更少的不确定行为。Vulkan的思想和Dirext3D 以及Metal 十分相似,
2016-08-31 14:46:45
2725
翻译 Vulkan教程说明
首先,这是一篇译文,原文网址是:Vulkan-tutorial 你可以在这个网址下看到本系列所有文章的原文。本人目前刚出来实习,两个月前我还以为自己的工作是写Android 应用的,并且之前我也一直往这个方向努力。但在公司实习后,接触的更多是Native层的东西,和之前写Android应用,画画界面、用些第三方库、写个网络访问等有好大的差别。虽然目前也是做Android方向,但公司这些东西从
2016-08-30 23:40:17
1800
原创 安卓向服务器(Spring)发送json
实体类:public class Stu { private int id; private String name; private String pass; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNam
2015-12-29 15:49:42
629
原创 onStart和onResume的区别
当Activity被onCreate后就会进入onStart状态,使这个Activity对用户来说呈可见状态,但不能交互。onStart之后调用onResume使得这个Activity获得焦点,排在了所有其他Activity之前,从而获得与用户交互的能力。
2015-12-13 15:15:35
1831
原创 NetworkOnMainThreadException
这个异常出现是因为,自己将访问网络的操作放在主线程MainActivity里了,访问网络是一个相当耗时的操作,所以平常都是放在主线程里的。虽然我们编写其他程序时可以将访问网络的操作放到主线程里,但是Android 拒绝我们这个做。解决方法:将访问网络的操作放到子线程里,具体操作多种多样,下面是一个例子:private class BtnOnclickListener implement
2015-10-29 11:26:50
456
原创 threadid=1: thread exiting with uncaught exception (group=0x416298c8)
按照网上的视频敲了一段在下载本地Tomcat下的一个小文本的应用程序,总是一点击按钮就退出,logcat下只有threadid=1: thread exiting with uncaught exception (group=0x416298c8) 这段错误信息。网上有人说是线程池时,try..catch无法捕获被抛出的异常,所以Java哭提供了UncaughtExceptionHa
2015-10-29 11:16:11
869
原创 java.nio.BufferOverflowException
听说这个问题是由于android高版本会自动建立Android Dependencies 库,然后又更改AndroidMainifest.xml里的minSdkVersion和targetSdkVersion的值造成的。 因为我建的项目min和target都是4.4.4, 而我的手机是4.2.2的,所以不能运行,然后我修改了minSdkVersion=15, 可以运行。但是会出现java.nio.
2015-10-29 11:00:14
2142
原创 小记 正则(一)
之前想写个表单验证,判断输入3-6个字符,写的是regexp=/\w{3,6}/, 小于3个字符或者是\w 之外的字符时都返回false ,而大于6的字符时任然返回true, 然后regexp改为:regexp=/^\w{3,6}$/ 这样就对了,小于3个字符为false,大于6个也为false。 原因可能是regexp=/\w{3,6}/ 只匹配第一个字串后就返回了,比如sdj234,234
2015-05-07 19:21:11
464
原创 字符串里的正则表达
myString自定义字符串,regexp正则表达式. other其他字符串.1. test 用法 :regexp.test(myString).意思是判断myString是否匹配正则表达式regexp, 匹配返回true, 否则返回false.2. replace 用法:myString.replace(regexp,other).意思是用other替换my
2015-05-07 18:22:28
468
原创 获取滚动条位置documentElement.scrollTop和body.scrollTo
获取滚动条位置documentElement.scrollTop和body.scrollTo 以及||符号的作用
2015-05-04 14:47:58
3638
原创 mysql error 1045 Access denied for user 'root'@'localhost' (using password: NO)
修改MySql配置的时候出现这种错误。 不知道什么情况,重新配置了几次,都出现同样的错误。 最后发现是root密码输入错误。记录下!
2015-03-31 10:02:34
593
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人