Don't dispatch virtual methods for builtin classes (reduces overhead).
Annotate for file src/libsmoke/class.lisp
2009-04-05 tobias 1 (in-package #:smoke)
15:36:29 ' 2
' 3 (defcenum smoke-class-flags
' 4 "Class properties"
' 5 (:constructor #x01)
' 6 (:copy-constructor #x02)
' 7 (:virtual-destructor #x04)
2010-02-18 tobias 8 (:namespace #x08)
2009-04-05 tobias 9 (:undefined #x10))
15:36:29 ' 10
' 11 (defcstruct smoke-class
' 12 "Describe a class"
' 13 (name :string)
' 14 (external cxx-bool)
' 15 (parents smoke-index)
' 16 (class-function :pointer)
' 17 (enum-function :pointer)
2009-12-13 tobias 18 (flags :unsigned-short)
10:17:08 ' 19 (size :unsigned-int))
2009-04-05 tobias 20
2010-01-10 tobias 21 (defcfun (smoke-find-class "cl_smoke_find_class") :void
2009-04-05 tobias 22 (m :pointer smoke-module-index)
15:36:29 ' 23 (name :string))
' 24
2010-02-18 tobias 25 (declaim (inline smoke-class-id))
2010-01-10 tobias 26 (defcfun (smoke-class-id "cl_smoke_class_id") smoke-index
2009-04-05 tobias 27 (smoke :pointer)
15:36:29 ' 28 (name :string))
' 29
2010-01-10 tobias 30 (defcfun (smoke-get-class "cl_smoke_get_class") (:pointer smoke-class)
2009-04-05 tobias 31 (smoke :pointer)
15:36:29 ' 32 (class smoke-index))
' 33
2010-01-10 tobias 34 (defcfun (smoke-is-derived-from "cl_smoke_is_derived_from") :boolean
2009-04-05 tobias 35 (smoke :pointer)
15:36:29 ' 36 (class smoke-index)
' 37 (smoke-base :pointer)
' 38 (base-class smoke-index))
' 39
2010-01-10 tobias 40 (defcfun (smoke-cast "cl_smoke_cast") :pointer
2009-04-05 tobias 41 (smoke :pointer)
15:36:29 ' 42 (object :pointer)
' 43 (from smoke-index)
' 44 (to smoke-index))