Согласно ActionController :: Head docs просто используйте этот шаблон в действиях
return head([status]) if/unless [some condition here]
Пример:
return head(:gone) if @record.deleted?
return head(:forbidden) unless @user.owns?(@record)
return
используется для проверки что оставшийся код в действии не будет запущен.
Я думаю, это по той же причине, что и функция glColor. Если норма всей вашей геометрии одинакова для всех вершин, вы можете указать ее с помощью glNormal перед вызовом glDrawArrays / glDrawElements.
Единственная причина, по которой я могу думать, заключается в том, что она предназначена для поддержки эффективного выражения поверхностей, в которых многие вершины имеют одну и ту же нормаль. При использовании подхода на основе массивов вам придется создать массив с одним и тем же значением, повторяющимся для каждой вершины, что расходует память.
Мне кажется любопытным, что справочная страница (OpenGL ES 1.1, там) даже не упоминает об этом. Я нашел один учебник по программированию для iPhone (PDF), в котором даже утверждалось, что glNormal ()
больше не существует.
OpenGL ES 1.1 упоминает об этом, но да, это ошибка в руководстве по программированию для iPhone.
Вы не должны больше использовать эти функции. Придерживайтесь glXXXXArray (). Я подозреваю, что они просто оставлены там, чтобы упростить перенос OpenGL на OpenGL ES.