Алекс Jenter - Программирование на Visual C++. Архив рассылки
- Название:Программирование на Visual C++. Архив рассылки
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Алекс Jenter - Программирование на Visual C++. Архив рассылки краткое содержание
РАССЫЛКА ЯВЛЯЕТСЯ ЧАСТЬЮ ПРОЕКТА RSDN, НА САЙТЕ КОТОРОГО ВСЕГДА МОЖНО НАЙТИ ВСЮ НЕОБХОДИМУЮ РАЗРАБОТЧИКУ ИНФОРМАЦИЮ, СТАТЬИ, ФОРУМЫ, РЕСУРСЫ, ПОЛНЫЙ АРХИВ ПРЕДЫДУЩИХ ВЫПУСКОВ РАССЫЛКИ И МНОГОЕ ДРУГОЕ.
Программирование на Visual C++. Архив рассылки - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Команда StencilOp предназначена для определения действий над пикселем трафаретного буфера в случае положительного или отрицательного результата теста.
Аргумент sfail задает действие в случае отрицательного результата теста, и может принимать следующие значения:
GL_KEEP, GL_ZERO, GL_REPLACE, GL_INCR, GL_DECR, GL_INVERT | соответственно сохраняет значение в трафаретном буфере, обнуляет его, заменяет на заданное значение (ref), увеличивает, уменьшает или побитово инвертирует. |
Аргументы dpfail определяют действия в случае отрицательного результата теста на глубину в z-буфере. dppass задает действие в случае положительного результата этого теста. Аргументы принимают те же значения, что и аргумент sfail . По умолчанию все три параметра установлены на GL_KEEP.
Для включения трафаретного теста необходимо выполнить команду glEnable(GL_STENCIL_TEST);
Трафаретный тест используется при создании таких спецэффектов, как тени, отражения, плавные переходы из одной картинки в другую, создания конструктивной геометрии (CSG) и др.
Пример использования трафаретного теста при создании теней описан в Приложении.
[Текст "Приложения" к сожалению не влезает даже в расширенный выпуск и всех интересующихся отсылаю к оригиналу статьи на RSDN.]
Это все на сегодня. Пока!
Алекс Jenter jenter@rsdn.ru Duisburg, 2001. Публикуемые в рассылке материалы принадлежат сайту RSDN.Программирование на Visual C++
Выпуск №68 от 17 марта 2002 г.
Здравствуйте, уважаемые подписчики!
СТАТЬЯ
Использование атрибутов в среде .NET
Автор: Алифанов Андрей
Демонстрационный проект
АТРИБУТ. Необходимый, постоянный признак, принадлежность.
"Толковый словарь русского языка", С.И. ОжеговЕсли вы когда-либо программировали на C++, вам должны быть знакомы определения, такие как publicи private, предоставляющие дополнительную информацию о членах класса. Эти ключевые слова задают поведение членов класса, описывая их доступность извне. Так как компиляторы распознают только предопределенные ключевые слова, вы не имеете возможности создавать свои собственные.
CLR, однако, позволяет вам добавлять объявления, называемые атрибутами, для комментирования таких элементов кода как типы, поля, методы и свойства. Внешне эти атрибуты похожи на те, что используются в языке описания интерфейсов IDL, но есть и существенные отличия: во-первых, система атрибутов CLR является расширяемой, а во-вторых, используется не только для управления маршалингом данных, а гораздо шире.
Когда вы компилируете свой код, он преобразуется в Microsoft Intermediate Language (MSIL) и помещается в файл формата Portable Executable (PE) вместе с метаданными, сгенерированными компилятором. Атрибуты позволяют добавить к метаданным дополнительную информацию, которая затем может извлекаться при помощи механизма рефлексии. Компилятор создает атрибуты, когда вы объявляете экземпляры специальных классов, наследующих от System.Attribute.
.NET Framework широко использует атрибуты. Атрибуты описывают правила сериализации данных, управляют безопасностью и ограничивают оптимизацию JIT-компиляторов для облегчения отладки кода. Атрибуты также могут содержать имя файла или автора, или управлять видимостью элементов управления и классов при разработке форм пользовательского интерфейса.
Вы можете использовать атрибуты для произвольного комментирования кода и управления поведением компонентов. Атрибуты позволяют добавлять описательные элементы в C#, управляемые расширения для C++, Microsoft Visual Basic.NET или в любой другой язык, поддерживающий CLR, без необходимости переписывать компилятор.
Кроме того, атрибуты можно использовать в ATL проектах, но это тема уже другой статьи.
Большинство атрибутов применяется к таким элементам языка как классы, методы, поля и свойства. Но некоторые атрибуты являются глобальными – они воздействуют на всю сборку или модуль. Глобальные атрибуты в текстах программ объявляются после usingдиректив верхнего уровня перед определениями типов и пространств имен. Они могут использоваться в разных исходных файлах одной программы.
Атрибуты в программном коде используются следующим образом:
1. Определяется новый или берется существующий в .NET Framework атрибут
2. Инициализируется конкретный экземпляр атрибута с помощью вызова конструктора атрибута.
Атрибут помещается в метаданные при компиляции кода и становится доступен CLR и любым инструментальным средствам и приложениям через механизмы рефлексии.
По соглашению, имена всех атрибутов оканчиваются словом Attribute. Однако, языки из VisualStudio.NET, не требуют задания полного имени атрибута. Например, если нужно инициализировать атрибут System.ObsoleteAttribute, достаточно написать Obsolete.
Следующий пример показывает, как использовать атрибут System.ObsoleteAttribute, помечающий код как устаревший. Атрибуту передается строка "Будет удалено в следующей версии". Этот атрибут заставляет компилятор выдать переданную строку как предупреждение при компиляции помеченного кода.
C#
using System;
public class MainApp {
public static void Main() {
//На этой строке компилятор выдаст предупреждение.
int MyInt = Add(2,2);
}
//В C# атрибуты задаются в квадратных скобках.
//Этот атрибут применяется только к методу Add.
[Obsolete("В следующей версии метод будет удален")]
public static int Add(int a, int b) {
return (a + b);
}
}
MC++
#using
using namespace System;
int Add(int a, int b);
void main(void) {
//На этой строке компилятор выдаст предупреждение.
int MyInt = Add(2, 2);
return;
}
//В MC++ атрибуты задаются в квадратных скобках.
//Этот атрибут применяется только к методу Add.
[Obsolete(S"В следующей версии метод будет удален")]
int Add(int a, int b) {
return (a + b);
}
Visual Basic.NET
Imports System
Public Module main
Sub Main()
'На этой строке компилятор выдаст предупреждение.
Dim MyInt as Integer = Add(2,2)
End Sub
' В Visual Basic.NET атрибуты задаются между скобками < и >.
' Этот атрибут применяется только к методу Add.
Function _
Add(a as Integer, b as Integer) as Integer
Add = a + b
End Function
End Module
Для применения атрибутов на уровне сборок используется ключевое слово Assembly. Следующий пример показывает, как используется атрибут AssemblyNameAttribute:
Читать дальшеИнтервал:
Закладка: