- 博客(69)
- 资源 (13)
- 收藏
- 关注
原创 OPENGL镜面反射练习
#include <glad\glad.h>#include <GLFW\glfw3.h>#include <glm/glm.hpp>#include <glm/gtc/matrix_transform.hpp>#include <glm/gtc/type_ptr.hpp>#include "Shader.h"#inclu...
2018-03-28 18:31:35 556
原创 OPENGL光照漫反射练习
#include <glad\glad.h>#include <GLFW\glfw3.h>#include <glm/glm.hpp>#include <glm/gtc/matrix_transform.hpp>#include <glm/gtc/type_ptr.hpp>#include "Shader.h"#inclu...
2018-03-27 18:56:18 638
原创 OPENGL添加摄像机功能练习
#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"#include <glad\glad.h>#include <GLFW\glfw3.h>#include <iostream>#include <glm/glm.hpp>#include <glm/gtc/matrix...
2018-03-16 17:17:36 720
原创 OPENGL绘制3D立方体练习
#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"#include <glad\glad.h>#include <GLFW\glfw3.h>#include <glm/glm.hpp>#include <glm/gtc/matrix_transform.hpp>#include ...
2018-03-14 16:01:40 2778 1
原创 OPENGL矩阵变换练习
#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"#include <glad\glad.h>#include <GLFW\glfw3.h>#include <glm/glm.hpp>#include <glm/gtc/matrix_transform.hpp>#include ...
2018-03-14 13:28:09 374
原创 OPENGL 纹理练习
#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"#include <glad\glad.h>#include <GLFW\glfw3.h>#include <iostream>const unsigned int WINDOW_WIDTH = 800;const unsigned int ...
2018-03-12 16:56:08 324
原创 OPENGL 着色器多属性练习
#include <glad\glad.h>#include <GLFW\glfw3.h>#include <iostream>const unsigned int WINDOW_WIDTH = 800;const unsigned int WINDOW_HEIGHT = 600;void framebuffer_size_callback(GLF...
2018-03-09 16:50:12 243
原创 OPENGL着色器Uniform练习
跟上一篇的不同是对uniform全局属性的理解#include <glad\glad.h>#include <GLFW/glfw3.h>#include <iostream>#include <cmath>const unsigned int SCR_WIDTH = 800;const unsigned int SCR_HEIGHT = ...
2018-03-08 19:01:27 538
原创 OPENGL 着色器练习
#include <glad\glad.h>#include <GLFW/glfw3.h>#include <iostream>const int WINDOW_WIDTH = 800;const int WINDOW_HEIGHT = 600;//顶点着色器const char* vertexShaderSource = "#version ...
2018-03-08 15:26:26 340
原创 Android 通过uinput模拟touch事件发出onActionDown onActionUp onActionMove
手机中的屏幕触摸事件是通过驱动将事件上报到/dev/input设备上,然后被input模块读取发送到APP 如果我没有物理的屏幕但我想发出触摸事件怎么办?通过Linux的uinput模块就可以不需要写驱动代码就能模拟一块触摸屏,当然我们也可以模拟出虚拟鼠标和键盘 本文讨论的是模拟触摸屏,鼠标和键盘比较easy 前提准备:getevent命令使用 1通
2018-01-18 13:21:59 6297 11
原创 Linux inotify + Epoll实现机制
首先学习Inotify机制,就是Linux系统下对文件目录的监听,如果目录下有文件创建删除都可以被监听到,那这个有什么作用呢?在Android Input系统中可以实现对设备热插拔的监听。我们先看一个简单的Demo #include #include #include #include #include #include #include #include
2018-01-05 15:49:49 2241
原创 Android深入分析NativeMessageQueue和Looper.cpp(Native层消息机制)
继续上一篇分析的Android Framework Java层的MessageQueue和Looper,我们这篇要看的是Native层的实现原理、 提前准备的知识点是Linux里面的Epoll机制 涉及到的代码目录 /frameworks/base/core/jni/android_os_MessageQueue.h /frameworks/base/core/
2017-12-21 18:46:13 2006
原创 Android深入分析MessageQueue和Looper(FrameWork JAVA部分)
Android深入分析MessageQueue和Looper(FrameWork JAVA部分)
2017-12-21 09:29:22 471
原创 Android C++ 共享内存MemoryHeapBase实现IPC进程通信实际案列
Android C++ 共享内存MemoryHeapBase实现IPC进程通信实际案列,SensorService
2017-12-14 15:40:23 2042
原创 POCO库Foundation之SharedPtr学习
POCO库说白了就是大牛写的一套C++工具集支持跨平台,里面包含了NET,XML,Thread各种模块,开设这个专栏就是记录我一点一滴的去学习POCO里面的代码设计
2017-10-31 10:01:27 1308
原创 Android C++ Socket请求XMl,TinyXml解析文件,JNI返回数据给JAVA层
这个需求的环境是Android FWK层之前用HttpUrlConnection请求了系统配置Xml文件,现在需要Native化,然后需要用C++ Socket封装Http协议请求XML数据,然后将XML解析成Model然后通过JNI返回给上层的流程 简单看一下上层调用接口就知道下面要干什么了 mButton.setOnClickListener(new View.O
2017-10-27 10:19:00 953
原创 Android SurfaceFligner Vsync信号 Jni/C++调用实现
在Anroid Vsync信号是用来通知APP进行渲染的,分为两种硬件Vsync和软件Vsync信号。我们这边不做详细介绍,这边是如何通过C++去拿到Vsync信号 首先来看上层提供的操作接口#include "LibLoader.h"#include LibLoader::LibLoader() { // TODO Auto-generated constr
2017-09-29 17:32:17 791
原创 Android Sensor从FWK到HAL至Driver纵线分析处理
VR ROM要在HAL层兼容MPU6500芯片的Sensor模块借此机会从FWK到HAL 到Driver分析了Sensor模块 首先看APP--》HAL 1:底层数据如何实时上报给APP? 2:SensorService怎么跟HAL交互? 3:SensorEventListener本质是什么 下面是我的结论:
2017-08-07 18:43:41 4464
原创 Android FrameWork深入分析DreamManagerService实现自己的系统屏保
Framework分析DreamService,实现自己的系统屏保现在有一个需求是在手机一段时间不用的情况下,显示自己的系统屏保功能 下面是涉及到的代码/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java 显示屏保功能的入口/frameworks/base/services/c
2017-07-03 18:23:00 7976 11
原创 《Boost程序完全开发》跟踪学习训练一:Boost::date_time库的使用
主要是记录个人如何按照Boost程序完全开发一书去学习入门Boost库书中第一个是date_time库首先我们看一下怎么去用#include #include #include #include "mytimer.h"using namespace boost;void main1(){ boost::timer t; std::cout<< "max span" <
2017-06-05 23:20:07 560
原创 Android解析自定义属性的XML实现底部导航栏TabSelectedView,实现灵活的配置扩展
Android解析自定义属性的XML实现底部导航栏TabSelectedView,实现灵活的配置扩展
2017-06-05 15:45:13 1305
原创 C++模板实现list,迭代器
这篇博文主要是帮助去了解STL List与迭代器 算法实现的原理让我们更明白STL容器的封装 迭代器与智能指针的关系 算法的封装我们主要是通过链表的实现下面看一下模板实现紫的链表节点元素的封装:#pragma oncetemplate class Node{public: T data; Node* next; Node(); ~Node();
2017-05-16 17:58:05 761
原创 C++ Boost signal2信号/插槽知识点
signals2基于Boost的另一个库signals,实现了线程安全的观察者模式。在signals2中,观察者模式被称为信号/插槽(signals and slots),它是一种函数回调机制,一个信号关联了多个插槽,当信号发出时,所有关联它的插槽都会被调用。下面就通过小案列来实现signal的使用#include #include #include #include u
2017-05-14 12:39:13 9230
原创 C++ std::move原理&右值引用存在的必要性
在学习C++的过程中一直搞不懂为什么要存在右值引用,将左值引用变为右值引用个人认为就是减少拷贝构造,赋值重载过程内存开辟拷贝的次数,提高速度我们现在看一段代码:#include #include using namespace std;class Student{ friend class Teacher;private: char * pStart
2017-05-10 22:43:43 1863 2
原创 C++ 智能指针shared_ptr模板实现原理
C++ 智能指针shared_ptr通过引用计数来管理指向的对象,不需要人工释放这篇博文主要是讲解了智能指针的实现原理,怎么实现引用计数#include using namespace std;namespace shao_smart_point{ //智能指针内部引用计数类实现 class smart_cout{ private: int use_count; pu
2017-05-07 15:07:43 1162
原创 C++类模板中使用异常知识点
这一篇主要记录了类模板中使用异常类的知识点类模板中使用异常类的时候,异常类同样可以进行模板化下面通过这个小案例来明白这个知识点#include #include using namespace std;class Error :public exception{};template class Myerror{public: void showError()
2017-05-06 17:01:03 1201
原创 C++ Boost::bind函数包装器使用,boost::bind与伪函数的绑定使用
在我们使用stl的 一些算法的时候,比如find_if,for_each等,需要使用仿函数,如果仿函数有2个参数,但是算法需要一个一元的仿函数的时候,我们可以使用适配器,boost库中boost::bind就帮助我们定义了函数适配器 下面主要讲了boost::bind如何适配函数,成员函数,Lambada函数,伪函数 #include #include #in
2017-04-25 22:43:53 5865
原创 C++类模板与函数模板 & 类模板继承
函数模板与类模板其实就是Java里面的泛型编程,只作为抽象的模板,使用时需要指定具体的类型才能实例下面就看类模板最典型的案列就能明白了:#include #include #include using namespace std;//类模板templateclass Myarray{public: T* p; Myarray(const initializer_l
2017-04-13 11:39:22 1752
原创 DownloadManager升级APK并且进度显示
Android sdk version 9以上就有DownloadManager下面就是我如何使用DownloadManagerpackage com.qq.beamzhang.mt.lib.service;import android.app.DownloadManager;import android.app.Service;import android.content
2017-04-11 13:55:58 2019
原创 C++函数副本机制研究&函数返回值与拷贝构造的浅拷贝和深拷贝的关系
C++函数的副本机制到底是怎么一回事呢?我们可以先从函数返回是Void类型,指针类型,引用类型逐渐过度到返回值是类型对象引起的副本机制首先通过函数返回值是Void类型的研究#define _CRT_SECURE_NO_WARNINGS#include using namespace std;class MyString{public: char* pstr; in
2017-04-07 11:51:55 1809
原创 C++拷贝构造函数的深拷贝与浅拷贝知识点
#define _CRT_SECURE_NO_DEPRECATE#include using namespace std;class MyString{public: char* pstr; int length; MyString(const char* str){ this->length = strlen(str) + 1; this->pstr = new
2017-04-01 11:43:56 620
原创 C++ allocators将构造函数,析构函数与分配内存解耦
allocators分配器的作用就是将分配内存与构造函数,析构函数脱离,提高运行效率减少成本。new和delete操作符把内存空间的分配回收与对象的构建销毁紧紧关联在一起。#include #include #include using namespace std;class Student{private: int a;public: Student(){ cou
2017-03-26 21:48:41 1266
原创 C++ forward_list,Vertor,Initializer_list用法知识点
C++ forward_list,Vertor,Initializer_list用法知识点
2017-03-22 13:50:57 520
原创 C++数据类型转换知识点
#include using namespace std;class Father{public : int time; virtual void run(){ cout<< "Fatner is running" <<endl; }};class Son : public Father{public: void run(){ cout << "Son i
2017-03-19 13:02:06 429
原创 C++引用数组,函数指针,函数指针数组,结构体数组等学习
这篇博文主要介绍了如何在C++11 VS2013编译器上去实现各种引用,避免因为编译器不同造成的语法困难1:引用数组,二维数组 ,数组指针#include using namespace std;void main1(){ /*int a[3]{1,2,3}; int aa[2][3]{1,2,3,4,5,6}; int*pa(new int[3]{1,2,3});
2017-01-24 15:26:54 1100
最强大的Asp.Net图书销售系统源代码保证不坑
2015-07-11
360手机安全卫士源码 实现自己的Android手机卫士
2015-07-11
解决eclipse中查看android工程代码出现android.jar has no source attachment
2015-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人