盖瑞直接傻眼了。
他愣愣地看着垃圾桶,又看了看林哲。
良久之后。
盖瑞猛地跳了起来,双手抱头,尖叫道:“你疯了!!!”
“你把微软的ApI指南扔了!我们拿什么写驱动!你这是要拉着全公司一起死啊!”
说着他就要扑向垃圾桶,把文档给掏出来。
“闭嘴。”
林哲冷冷地吐出两个字。
盖瑞的动作僵在了半空。
林哲端起手里的红茶,喝了一口。
他把盖瑞挤到一边,走到盖瑞的电脑前,一屁股坐在转椅上,顺手把茶杯放在键盘旁边。
“你们这帮写代码的,脑子全是被书本给塞死了。”
林哲靠在椅背上,抬头看着目瞪口呆的盖瑞和周围围过来的一圈软件工程师。
“微软给你发个破文档,你就真把它当圣旨了?”
“他让你往东你就往东,他文档里写了坨屎,你还得亲自尝尝咸淡?”林哲嗤笑一声。
“盖瑞,我问你,整机厂的那些用户,买回去咱们的显卡,他们会在乎你底层是怎么调用d3d_VERtEx的吗?”
盖瑞愣愣地摇了摇头。
“对啊。他们只在乎鼠标点开游戏,画面出不出现,卡不卡。”
林哲指着电脑屏幕上那些红色的报错代码。
“既然微软那帮孙子自己都逻辑混乱,那我们就根本不用去管他们到底是怎么写的。”
盖瑞彻底懵逼了:“不管他们怎么写?那接口怎么对接?操作系统不认啊!”
林哲坐直身子,双手放上盖瑞的机械键盘,眼神瞬间变了。
“对接个屁。”林哲冷笑。
“他们写的ApI是个四处漏风的破房子。”
“咱们就直接在他们的破房子外面,砌一堵墙。”
“写一个中间拦截层,把微软发过来的所有乱七八糟的乱码指令,全部在这个拦截层里截住!”
林哲的语速越来越快,双手已经开始在键盘上发出密集的敲击声。
“别看微软怎么写。”
“听我怎么敲。”
“噼里啪啦噼里啪啦——”
密集的键盘敲击声,在安静的办公区里回荡。
盖瑞和十几个软件工程师,全部伸长脖子,盯着屏幕。
他们看到了一幕这辈子都无法理解的画面。
林哲根本没有打开任何参考文档。
他甚至连刚才盖瑞写的报错代码都没看。
他直接新建了一个最底层的c语言编译文件。
然后,开始硬生生地手写操作系统底层的桥接逻辑!
“看清楚了!”
林哲一边疯狂敲击键盘,一边用一种通俗的大白话给这帮菜鸟上课。
“微软现在就像个喝醉了酒的神经病,他跑到咱们的芯片面前,一会儿要三角形,一会儿要四边形,一会儿又要咱们把缓存清空。”
“你们顺着他,系统当然崩溃。”
“我现在写的这个玩意儿,叫欺骗层。”
林哲敲下一个回车,屏幕上瞬间刷出一长串精妙的内存地址重定向代码。
“微软要什么,咱们就告诉他:‘好的,大爷,已经给您办妥了’。直接返回一个虚假的成功指令给操作系统。”
“实际上呢?底层芯片根本没理他,咱们只挑有用的放进去,剩下的废话,全部在拦截层里直接抹掉!”林哲敲下一个回车。
“你们不是在头疼怎么骗过卡马克,搞那个miniGL封装层吗?刚好。”
屏幕上瞬间刷出一长串精妙的内存地址重定向代码。
“这套欺骗层是个通用的壳。微软发过来的废话,截住。卡马克的《雷神之锤》吐出来的openGL指令,也在这截住。全给它扒了皮,换成最基础的三角形数据丢给硬件。”
林哲一边疯狂敲键盘,嘴里一边瞎嘟囔。
“既然这流氓拦截层都建好了,大爷我顺手把3dfx的Glide接口代码也给反编译加进去。以后碰到竞争对手的私有指令,照样直接扒了皮扔进咱们的direct3d管线里跑。”
盖瑞在旁边听得直哆嗦,他结结巴巴地开口:“你……你这是暴力劫持操作系统!你还反编译竞争对手的指令?这是黑客行为!3dfx要是知道了会告死我们的!”
“对啊,怎么了?”林哲头都没回,手底下的机械键盘敲得啪啪作响。
“你不说,我不说,只要屏幕上的画面不卡,谁特么知道它底层跑的是什么玩意儿?”
周围的软件工程师们全倒吸一口凉气。
太野蛮了!
太流氓了!
但也太特么天才了!
这就好比上面发下来一份错漏百出的图纸,底下的包工头根本不看图纸,直接按自己的经验把楼给盖好了,然后反手给上面盖个合格的章!
整整半个小时。
林哲的双手在键盘上就没有停下过。
他脑子里装着未来显卡驱动发展史上的无数次黑客级优化技巧,对付一个1996年漏洞百出的directx 3.0?
这不手到擒来嘛!
其实这种中间拦截层的写法,在后世已经是各大显卡厂标配的基操,但在现在这帮老实巴交的程序员眼里,这简直就是神仙下凡的黑魔法。
啪!
林哲用力敲下最后一个分号。
保存,编译。
屏幕上弹出一个绿色的进度条。
两秒钟后。
“pile Successful. 0 Errors.”
(编译成功。0报错。)
林哲拿起旁边的红茶,喝了一大口,润了润发干的嗓子。
“行了。”
林哲推开键盘,从椅子上站了起来,他指了指屏幕上这套十分干净、逻辑有些流氓的拦截层代码框架。
“地基我给你们打好了。”
“以后微软的文档,全当擦屁股纸扔了。”
“他们发过来什么指令,你们就往我这个拦截层里套。有用的留下,没用的直接丢掉,给微软回个假消息就行。”
林哲双手重新插回兜里:“就这么点破事,也值得你们闹辞职?”
办公区里鸦雀无声。
盖瑞愣愣地站在电脑前,看着屏幕上这套完美绕开了所有微软死胡同的驱动框架。
他突然转身,看向被林哲扔进垃圾桶里的厚重文档。
盖瑞走过去,抬起脚。
然后,狠狠往垃圾桶里踩了两脚。
“去你大爷的微软!去你大爷的文档!”盖瑞眼眶通红地大吼一声,“老子终于不用受这份窝囊气了!”
整个软件组的工程师们瞬间爆发出震耳欲聋的欢呼声。
大家激动得互相拥抱。
甚至好几个人冲过来想抱林哲的大腿。
林哲嫌弃地往后退了两步,躲开几个油腻工程师的拥抱。
“行了行了,别在这发神经了。”
林哲打了个哈欠:“有这功夫,赶紧把剩下的代码填好,明天早上我要看初版跑分数据。”
他转身往玻璃门走去。
走到门口,林哲突然停下脚步,回头看着盖瑞。
“盖瑞。”
“在!林老大您吩咐!”盖瑞这会儿的称呼已经自动跟硬件组的戴夫对齐了。
“我替你们解决了这么大个烂摊子。”林哲摸了摸肚子,“中午食堂那个咸的要死的土豆泥我是吃不下了。”
“去给我点个外卖,双层牛肉芝士汉堡,我要加三片腌黄瓜。”
盖瑞把胸脯拍得砰砰响:“没问题!我给您点三个!直接送到您桌子上!”
林哲摆了摆手,推门走了出去。
戴夫屁颠屁颠地跟在后面,满脸都是与有荣焉的得意。
“林老大,你刚才那扔文档的动作,简直帅炸了!”戴夫在旁边疯狂拍马屁。
林哲翻了个白眼:“帅个屁,那破文档有五斤重,刚才抡那一下,把我肩膀都闪了。”
林哲晃荡着回到自己的真皮椅上,重新瘫了下来,顺手拿起桌上的魔方。
“戴夫,去前台给我催催汉堡,饿死了。”
“得嘞!”