回覆列表
  • 1 # hhjj34622

    當你移動一下滑鼠的時候,發生了這樣一些事情。

    滑鼠移動產生電訊號,透過滑鼠線進入主機板,主機板透過匯流排輸入到cpu晶片的一個針腳上,cpu裡面有一段程式碼迴圈著,就是不停的檢視這一個針腳,有沒有高電平啊,有沒有高電平啊。如果有一段類似於高低高高低的傳過來了,符合預留的暗號,cpu一言不合就開始記錄接下來的高低順序訊號一大段,然後從記憶體中讀取一塊序列(重點哦)到自己裡面快取暫存器之類,用來翻譯這段高低順序訊號。轉變成為另外一個高低序列,透過主機板上的匯流排傳輸到顯示適配卡上的GPU裡面,gpu就透過VGA或者HDMI之類的線路,傳輸出大量的高低電平,顯示器收到這一串高低電平,就按照指示從左到右,從上到下一行一行的畫完,畫完一頁,又開始畫第二頁。只不過兩個頁,在某一畫素的哪一個地方的畫素變一下。由於一秒鐘65頁,你看上去,就像是連續的。

    同志啊,其他的作業系統,顯示卡的驅動,顯示器的硬體,別人都給你做好了。你就做一個事情,那一段記憶體中的序列,就是把滑鼠移動產生的一段訊號,轉變成為傳輸給顯示卡的一段訊號的套路,你要來做。

    遠古時代,程式猿們是真的一個一個位去搞定的,後來不斷的發展,不斷的發展,基礎工作大量的被別人做好了,最後你就來一個類似於mouse.move(左上角位置,水平移動距離,垂直移動距離)就可以被自動的翻譯成一大串一大串如果讀引腳上的序列,如果響應的轉化為另一串序列的一個套路。

    程式就是套路,編寫程式,就是編寫套路。

  • 中秋節和大豐收的關聯?
  • 我有灰指甲。怎麼樣才能不傳染給家人?