Quake3引擎的源码已经公开了,研究过的人都认为虽然它年代比较久远,但是代码写得非常漂亮,非常值得一探究竟。Quake3引擎的源码是完全开源的,但是Quake3这款游戏的资源(声音、图片等)并非免费,所以,如果想要运行这款游戏还是必须要购买发行版CD。实际上可以参考这个基于Quake3引擎的完全开源的仿制游戏比较郁闷是国内外的研究者虽然并不少,但是网上能找到的资料却少得可怜,比较有价值的更是少之
在上一篇文章RKMEDIA使用简介中简单的介绍了rkmedia的组成部分,本章主要聊聊VI模块。rkmedia中的VI模块主要可以从两个方式获取流:直接打开video节点的方式、使用rk平台的rkaiq。1、直接打开video节点的方式 顾名思义只需要在vi初始化中配置VI_CHN_ATTR_S参数中pcVideoNode成对应的/dev/video*节点 VI_CHN_ATTR_S vi_chn
程序员常用的几款软件Mindmanager思维导图,据说是每个产品经理必备的软件。如果你阅读大型源代码,使用思维导图跟踪调用流程,绘制软件框架将会非常方便。MarkdownPadMarkdownPad是windows上最好用的Markdown编辑器。有了这货,你可以像写word文档一样写html页面,也是广大博客主的最爱!当然,在mac上有很多高大上的Markdown编辑器。Beyond comp
RKImageMaker是一个专门为Linux系统设计的工具,用于制作和定制Linux系统的镜像。通过RKImageMaker,用户可以根据自己的需求选择要安装的软件包、配置文件以及系统参数,从而定制出符合自己需求的Linux系统镜像。
使用RKImageMaker可以为不同类型的硬件平台制作定制化的Linux系统镜像,比如嵌入式设备、服务器、个人电脑等。不同硬件平台可能有不同的需求和配置,RK
原创
2024-05-16 11:06:40
492阅读
文章目录概述具体步骤准备firefly sdk准备rk官方Linux 4.19开始移植 概述对于Linux 4.19版本,rockchip提供了官方4.19内核,由于rk官方对于4.19内核版本有支持,但是仅限于少数rk的板子,所以要支持firefly的rk3399-roc-pc-plus(后称为roc-plus),需要进行板级适配/移植。具体步骤准备firefly sdk一. 按照firefl
一、参考资料框架源码解析系列
原创
2022-07-28 06:13:49
212阅读
商业源码VBPB源码C源码DELPHI源码分享★★★
http://www.data118.net/codes.htm
J2EE企业分销管理系统(连锁分销)
综合物流系统源码(java+oracle)
家具营销物流管理系统(.net+sql)
俱乐部管理系统源码(c+sql)
南通外代物流管理系统(VFP)
大型酒店管理系统源码(delphi+sql)
汽车修配管理系统源码(pb
转载
2006-04-30 21:05:22
2355阅读
1评论
1、什么是JavaScript?1.1、概念JavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码。诞生于1995年,当时的主要目的是验证表单的数据是否合法。JavaScript本来应该叫LiveScript,但是在发布前夕,想搭上当时超热的java顺风车,临时把名字改为了JavaScript。(也就是说js
转载
2023-08-29 15:56:09
916阅读
前言首先问大家一个问题,我们开发好 Java 代码是如何运行的?我们写了这么多年的代码,对于代码运行的流程是否清楚呢?是不是在 ide 中点一下 Run 启动就完事了,我们写的代码直接就跑起来了,其实在背后编译器和虚拟机默默的在帮我们承受了这一切。Java 程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码2、字节码由 Java 虚拟机解释运行。因为 Java 程序既要编译同
转载
2023-09-18 17:35:58
262阅读
前言前面写了一篇Sentinel的源码解析,主要侧重点在于Sentinel流程的运转原理。流控框架Sentinel源码解析,侧重点在整个流程。该篇文章将对里面的细节做深入剖析。统计数据StatisticSlot用来统计节点访问次数@SpiOrder(-7000)
public class StatisticSlot extends AbstractLinkedProcessorSlot<De
转载
2024-03-26 21:59:24
62阅读
LeakCanary源码解析本文我们来看下LeakCanary的源码,以下内容基于com.squareup.leakcanary:leakcanary-android:1.6.3LeakCanary.install(this)从install方法进入public static @NonNull RefWatcher install(@NonNull Application application)
转载
2024-03-31 20:49:23
101阅读
一、前言hhvm源码中充满了很多C++11的新特性,并且使用了各种设计模式如工厂,模板方法等,利用智能指针包裹指针,让delete没有肆意的出现模板,继承,explicit,纯虚函数的出现令代码中充满了惊喜例如下面这段代码:run_函数是pthread_create执行的函数 二、hhvm启动流程总览hhvm/main.cpp75行:调用execute_program函数进行
转载
2024-07-23 08:21:40
216阅读
HashMap 数据结构Java 1.7 HashMap 的数据结构是 数组 + 链表 Java 1.8 HashMap 的数据结构是 数组 + 链表 + 红黑树HashMap 重点参数这里是针对1.8总结的。 HashMap的默认初始化容量, 必须是二次幂static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16//最大
转载
2023-11-07 06:09:37
0阅读
Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题。它主要专注于持续集成、提高效率并且提升用户体验。Sentry 分为服务端和客户端 SDK,前者可以直接使用它家提供的在线服务,也可以本地自行搭建;后者提供了对多种主流语言和框架的支持,包括 React、Angular、Node、Django、RoR、PHP、Laravel、Android、.NET、JAVA 等。同时
之前已经有人对这个源代码做过分析了,参见这里选择从另外一个角度再次解析这部分代码,建议先阅读上面的博客内容:/* Converts Gregorian date to seconds since 1970-01-01 00:00:00.
* Assumes input in normal date format, i.e. 1980-12-31 23:59:59
* => year=19
转载
2024-01-04 10:09:32
145阅读
文章目录一、简介二、工程引入配置三、加锁操作四、原理分析五、方案优缺点 一、简介 现在项目一般都是使用分布式集群部署,对后台业务数据的某些操作需要考虑加锁的问题,而jdk的synchronize加锁机制已经不适合做集群部署的操作,因为synchronize关键字只是针对于单体部署的单台虚拟机有用。考虑到现在系统使用redis做缓存比较高效,此处推荐使用redis下的分布式锁redisson进行加
转载
2023-08-02 11:07:21
139阅读
本文对源码的每个文件进行详细的解读!configs:下面是一些模型配置的超参数,这里有vgg,inception等。data: 使用来做数据的工厂文件,这里的文件与数据生成有关。help_utils:有两个文件,help_utils.py是show图片的一个重要文件。scripts: 脚本文件,在Ubuntu下直接执行的.sh文件,调用tools文件进行train,test,eval,infere
转载
2024-07-30 14:17:01
108阅读
为了让自己更好的使用egret,我瞄上了源码。 这个神奇的egret是怎么工作的,学好egret我们是否需要深入了解到什么程度?这些我们姑且不去思考,对源码的深入解读就是一个受益匪浅的过程。跟我来抽丝剥茧!就算刚接触egret,只会运行egret的Hello world你也可以跟着做。一、从安装说起从源码安装Egret http://docs.egret-lab
转载
2024-04-16 11:02:01
91阅读
其实我本来只是想搞懂为什么memcpy()函数的参数类型是void *的:我以为会在memcpy()源码中能找到答案,其实并没有,void *只是在传递参数的时候起了作用,可以让memcpy()接受不同的指针类型,比如char *,double *,struct stu *等等,没错,只是这样,至于memcpy()内部的工作原理,请继续往下看。没办法,我只好去找找memcpy的源码。代码如下。
转载
2024-06-09 01:25:38
207阅读
说到 strlen,最直接最naive的算法,就是逐位比较是否为 '\0'。inline size_t my_strlen(const char * str) {
register size_t len = 0;
while (*str++ != 0)
len++;
return len;
} 而一个简单的尝试
转载
2024-08-12 16:58:07
72阅读