<commit_before>(ns cloj.lwjgl.render
  (:require 
    [clojure-gl.math  :refer [mul
                              translation
                              rotation
                              scale]]
    [cloj.math.vec2         :refer [ v2 ]]

    [cloj.protocols.render  :as rend-p]
    [cloj.protocols.resources :as res-p])

  (:import (org.lwjgl.util.vector Matrix Matrix2f Matrix3f Matrix4f)
           (org.lwjgl.util.vector Vector2f Vector3f Vector4f)
           (org.lwjgl.opengl GL20 GL11))
  )


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn px [v]
  ; (int (+ 0.5 v))
  v)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defprotocol
  IShader
  (set-matrix-unifom! [this id mat])
  (load-shader! [this shader-init]))

(defn mk-shader []
  (reify
    IShader
    (set-matrix-unifom! [this id mat])
    (load-shader! [this shader-init]) ))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defrecord MatrixSaver [current saved dirty?])

(defn create-matrix! [] (atom (->MatrixSaver (Matrix4f.) (Matrix4f.) true)))
(defn save-matrix! [this] (assoc this :saved (:current this)))
(defn restore-matrix! [this] (assoc this
                                   :current (:saved this)
                                   :dirty true))
(defn dirty! [this v] (assoc this :dirty true ))
(defn clean! [this v] (assoc this :dirty false ))
(defn set-matrix! [this m]
  (assoc this
         :matrix m
         :dirty true))

(defn get-matrix [this] (:current this))
(defn dirty? [this] (:dirty? this))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn draw-quad [x y w h r g b a]
  (let [w 1000
        h 1000
        r 0
        g 0
        b 0
        a 1]
    (GL11/glColor4f r g b a)
    (GL11/glBegin GL11/GL_QUADS)<commit_msg>Removed test code that was breaking box! drawer<commit_after>(ns cloj.lwjgl.render
  (:require 
    [clojure-gl.math  :refer [mul
                              translation
                              rotation
                              scale]]
    [cloj.math.vec2         :refer [ v2 ]]

    [cloj.protocols.render  :as rend-p]
    [cloj.protocols.resources :as res-p])

  (:import (org.lwjgl.util.vector Matrix Matrix2f Matrix3f Matrix4f)
           (org.lwjgl.util.vector Vector2f Vector3f Vector4f)
           (org.lwjgl.opengl GL20 GL11))
  )


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn px [v]
  ; (int (+ 0.5 v))
  v)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defprotocol
  IShader
  (set-matrix-unifom! [this id mat])
  (load-shader! [this shader-init]))

(defn mk-shader []
  (reify
    IShader
    (set-matrix-unifom! [this id mat])
    (load-shader! [this shader-init]) ))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defrecord MatrixSaver [current saved dirty?])

(defn create-matrix! [] (atom (->MatrixSaver (Matrix4f.) (Matrix4f.) true)))
(defn save-matrix! [this] (assoc this :saved (:current this)))
(defn restore-matrix! [this] (assoc this
                                   :current (:saved this)
                                   :dirty true))
(defn dirty! [this v] (assoc this :dirty true ))
(defn clean! [this v] (assoc this :dirty false ))
(defn set-matrix! [this m]
  (assoc this
         :matrix m
         :dirty true))

(defn get-matrix [this] (:current this))
(defn dirty? [this] (:dirty? this))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn draw-quad [x y w h r g b a]
  (let [w 1000
        h 1000
        r r
        g g
        b b
        a 1]
    (GL11/glBegin GL11/GL_QUADS)
    (GL11/glColor4f r g b a)
{'fraction_non_alphanumeric': 0.2785714285714286, 'fraction_numerical': 0.017724867724867723, 'mean_word_length': 2.5535714285714284, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7470808', 'n_tokens_mistral': 1495, 'n_tokens_neox': 1286, 'n_words': 314}