- 博客(35)
- 资源 (8)
- 收藏
- 关注
原创 C++学习(三二九)osg::Geometry绘制到窗口的过程
1、生成Geometry的顶点属性包括位置、颜色、纹理坐标等2、生成渲染节点3、执行渲染操作形成窗口可见的点、线、面等。
2021-07-31 12:13:14 325
原创 C++学习(三二八)osg::State中_useVertexAttributeAliasing的作用
State::State(): Referenced(true){ #if !defined(OSG_GL_FIXED_FUNCTION_AVAILABLE) _useVertexAttributeAliasing = true; #else _useVertexAttributeAliasing = false; #endif}
2021-07-31 09:48:40 265
原创 C++学习(三二七)宏中# #@和##的作用
符号 # 也称为字符串化运算符(stringify operator 或 stringizing operator),它会把宏调用时的实参转换为字符串。符号 ## 则是连接符号,由两个井号组成,其功能是在带参数的宏定义中将两个子串联接起来,从而形成一个新的子串。...
2021-07-30 06:14:38 412
原创 C++学习(三二六)osgGA::PointerData的作用
主要用来记录当前鼠标点击事件的一些相关信息,比如当前点击位置,所在对象(窗口)及其尺寸。给鼠标点击事件提供更加丰富的参考信息。struct PointerData : public osg::Referenced{ osg::observer_ptr<osg::Object> object; float x, xMin, xMax; float y, yMin, yMax;};class OSGGA_EXPORT GUIEventAdapter : pub
2021-07-30 05:53:50 185
原创 C++学习(三二五)Qt和Android Studio调试区别
对于函数int func(func1(),func2());Qt调试顺序为func2 func1 funcAndroid Studio调试顺序为func1 func2 func
2021-07-30 05:15:31 417
原创 C++学习(三二四)osg标准漫游器StandardManipulator的_ga_t1 _ga_t0
_ga_t0表示最近的一个鼠标点击事件,ga_t1表示第二近的鼠标点击事件osgGA/StandardManipulatorosg::ref_ptr< const osgGA::GUIEventAdapter > _ga_t1;osg::ref_ptr< const osgGA::GUIEventAdapter > _ga_t0;
2021-07-29 06:20:24 340
原创 C++学习(三二三)osg的事件访问器EventVisitor
作用:对场景图节点Node进行更新。需要场景图节点定义回调函数osg::Callback。创建时机:调用时机: osgGA/EventVisitor inline void handle_callbacks_and_traverse(osg::Node& node) { handle_callbacks(node.getStateSet()); osg::Callback* cal.
2021-07-29 05:36:25 307
原创 C++学习(三二二)Android Windows屏幕坐标
最外面一层是屏幕,左上角是坐标原点,向右向下是x、y正方向。这和Windows屏幕坐标是一样的。
2021-07-29 04:38:41 335
原创 C++学习(三二一)GUIEventAdapter::MOVE与GUIEventAdapter::DRAG区别
MOVE没有鼠标左键按下移动,DRAG鼠标左键按下移动osgGA/GUIEventAdapterclass OSGGA_EXPORT GUIEventAdapter : public Event{ enum EventType { NONE = 0, PUSH = 1<<0, RELEASE = 1<<1
2021-07-24 08:13:59 589
原创 C++学习(三二零)osg漫游器Manipulator自带的鼠标拖拽事件Drag响应
_viewer->setCameraManipulator( new osgGA::TrackballManipulator() );
2021-07-23 06:04:07 752
原创 C++学习(三一九)Android的MotionEvent
ACTION_DOWN:手指按下ACTION_MOVE:手指移动ACTION_UP:手指离开屏幕上述这个动作所产生的一系列事件,被称为一个事件流,它包括一个ACTION_DOWN事件,很多个ACTION_MOVE事件,和一个ACTION_UP事件。ACTION_CANCEL:取消当前手势。一般来说,如果一个子视图接收了父视图分发给它的ACTION_DOWN事件,那么与ACTION_DOWN事件相关的事件流就都要分发给这个子视图,但是如果父视图希望拦截其中的一些事件,不再继续转发事件给
2021-07-21 06:25:30 126
原创 C++学习(三一八)Android的Logcat
logcat是Android中一个命令行工具,可以用于得到程序的log信息。要仅显示感兴趣的信息,您可以创建过滤器、修改消息中显示的信息量、设置优先级、仅显示通过应用代码生成的消息以及搜索日志。默认情况下,logcat 仅显示与最近运行的应用相关的日志输出。如果应用抛出异常,logcat 会显示一条消息,后跟相关联的堆栈轨迹,其中包含指向相应代码行的链接。 Log.e(String, String)(错误) Log.w(String, String)(警告) Log.i(Stri
2021-07-21 06:17:23 397 1
原创 C++学习(三一七)ASCII码表
ASCII ((American Standard Code for Information Interchange):美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符 [1] 。...
2021-07-19 06:24:15 2866
原创 C++学习(三一五)osg漫游器Manipulator自带事件Event响应
osgGA/StandardManipulator.cppbool StandardManipulator::handleKeyDown( const GUIEventAdapter& ea, GUIActionAdapter& us ){ if( ea.getKey() == GUIEventAdapter::KEY_Space ) { flushMouseEventStack(); _thrown = false; ...
2021-07-18 19:22:32 250
原创 C++学习(三一四)osg漫游器Manipulator例子
osg::ref_ptr<osgGA::KeySwitchMatrixManipulator> _manipulator; _manipulator = new osgGA::KeySwitchMatrixManipulator; _manipulator->addMatrixManipulator( '1', "Trackball", new osgGA::TrackballManipulator() ); _manipulator->...
2021-07-18 08:50:44 1339
原创 C++学习(三一三)EventQueue创建时机
osgGA::EventQueue在osgViewer::View创建时创建。osgViewer/View.cppView::View(): _fusionDistanceMode(osgUtil::SceneView::PROPORTIONAL_TO_SCREEN_DISTANCE), _fusionDistanceValue(1.0f){ // OSG_NOTICE<<"Constructing osgViewer::View"<<std::
2021-07-18 08:18:16 218
原创 C++学习(三一二)glVertexAttribPointer和glVertexAttrib*的关系
参考openGL之API学习(一六六)glVertexAttrib*函数和openGL之API学习(三十一)glVertexAttribPointer。
2021-07-18 06:27:25 298
原创 C++学习(三一零)glEnableVertexAttribArray和glVertexAttribPointer的顺序关系
没有顺序关系,可前可后。
2021-07-17 16:46:47 217
原创 C++学习(三零九)osg::VertexArrayState的作用
osg/VertexArrayState class OSG_EXPORT VertexArrayState : public osg::Referenced{};
2021-07-17 12:07:47 398
原创 C++学习(三零八)osg::Geometry的顶点数据上传到GPU的过程
osg/VertexArrayState.cppinline void callVertexAttribPointer(GLExtensions* ext, const osg::Array* new_array, const GLvoid * ptr) { if (new_array->getPreserveDataType()) { if (new_array->getDataType()==GL_FLOAT) ...
2021-07-17 09:00:56 256
原创 openGL之API学习(一六八)gl_SecondaryColor
The GL stores both a primary four-valued RGBA color and a secondary four-valued RGBA color (where alpha is always set to 0.0) that is associated with every vertex.The secondary color is interpolated and applied to each fragment during rasterization when
2021-07-17 08:43:16 281
原创 openGL之API学习(一六七)默认着色器 顶点属性索引 别名索引
opengl在调用glDrawElements或glDrawArrays进行绘制时,如果没有指定用户自定义的顶点、片段等着色器,opengl会为用户设置一个默认的着色器,类似于顶点着色器#version 330void main(){ }片段着色器#version 330void main(){ }在顶点着色器中默认使用gl_Vertex绘制顶点。在片段着色器中默认使用gl_Color绘制颜色。gl_Vertex、gl_Color一般通过glVer
2021-07-17 08:22:06 756
原创 openGL之API学习(一六六)glVertexAttrib*函数
指定通用顶点属性的值void glVertexAttrib1f( GLuint index,GLfloat v0);void glVertexAttrib2f( GLuint index,GLfloat v0, GLfloat v1);void glVertexAttrib3f( GLuint index,GLfloat v0,GLfloat v1,GLfloat v2);void glVertexAttrib4f( GLuint index,GLfloat v0,GLfl...
2021-07-13 06:55:19 1026
原创 C++学习(三零七)AttributeDispatchers详解
用于管理将各种属性数组(例如存储在 osg::Geometry 中)分派到 OpenGL 的助手类。osg/AttributeDispatchers.cpp/** Helper class for managing the dispatch to OpenGL of various attribute arrays such as stored in osg::Geometry.*/class OSG_EXPORT AttributeDispatchers : public osg::Refere
2021-07-12 06:08:54 218
原创 C++学习(三零五)osg开启 关闭光照效果
osg::ref_ptr<osg::StateSet> state = root->getOrCreateStateSet();state->setMode(GL_LIGHTING, osg::StateAttribute::ON);state->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
2021-07-11 07:01:21 1358 1
原创 C++学习(三零四)osg材质Material使用
osg::ref_ptr<osg::Material> material = new osg::Material; osg::Vec4 redColor(1.0, 0.0, 0.0, 1.0); material->setAmbient(osg::Material::FRONT_AND_BACK, redColor); material->setDiffuse(osg::Material::FRONT_AND_BACK,redColor); mate.
2021-07-10 19:52:53 501 1
原创 C++学习(三零三)osg绘制直线 折线
//绘制折线osg::ref_ptr<osg::Geode> geode = new osg::Geode;_root->addChild(geode);//设置顶点数组osg::ref_ptr<osg::Vec3Array> vex = new osg::Vec3Array;vex->push_back(osg::Vec3(-3.0, 0.0, 0.0));vex->push_back(osg::Vec3(3.0, 0.0, 0.0));vex-&.
2021-07-10 19:06:16 1076
原创 C++学习(三零二)知识图谱中的几种关系
1、强关系数据库表中同一行的两个知识2、中关系文档中同一段落的两个知识3、弱关系文档中不同段落的两个知识
2021-07-10 08:08:00 416
原创 C++学习(三零零)windows如何查看so文件里的函数
需要用到cygwin下的realelf工具1、查看so文件的头部信息$ readelf -h D:/android-ndk-r19c/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/aarch64-linux-android/28/libGLESv2.soELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class:
2021-07-10 07:23:09 2949 1
原创 C++学习(二九九)undefined reference to `glActiveShaderProgramEXT‘
缺少动态库,添加D:\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\aarch64-linux-android\28\libGLESv3.soAccording to the Khronos OpenGL ES Registry, the extension header for GLES 3.0 is actually <GLES2/gl2ext.h>. gl3ext.h should be
2021-07-08 06:22:16 295
osgAndroidExampleGLES2重新组织TestNativeCPlusPlus
2021-06-19
NVIDIA_Nsight_Tegra_Release_3.6.19217.7511.exe
2021-02-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人