Поздравляю всех с наступившим 2012м.
Теперь к будням. :(
Определение с вики: контекст - относительно законченный отрывок письменной или устной речи (текста), общий смысл которого позволяет уточнить значение отдельных входящих в него слов, предложений, и т. п.
Один и тот же метод будет вести себя по-разному в зависимости от "окружения"? Что значит термин "контекст" применительно к технологиям и программированию?
канвас это просто поле для рисования он сам ничего не умеет.
А контекст это тот выбранный способ рисования которым ты сейчас пользуешься, в контексте 2д рисования доступны только 2д команды например. В контексте вебгл доступны команды 3д.
Пытаюсь понять смысл термина, по всякому манипулируя его определением, поэтому, если тупо заменить в определении некоторые слова, то получится:
отрывок речи - программа ("окружение"): модуль, метод, функция, процедура, main(){...}
отдельно входящее слово - название: переменной, метода, функции, процедуры.
kvakvs
>контексте 2д рисования доступны только 2д команды например. В контексте вебгл доступны команды 3д.
Читал, что canvas - часть html, webgl - api доступа к видеокарте.
Получается, контекст канваса - хтмл, контекс вебгл - api, поддержанное аппаратной реализацией?
В речи одно и то же слово в разных контекстах может трактоваться по разному. Если в программировании так же, то контекст 2д и контекст 3д состоят из одинаковых методов (хотя бы в названиях), но с разной реализацией. Верная аналогия?
з.ы.
Для лучшего закрепления хотелось бы примеров типа "то-то является контекстом того-то".
Считаю, что под контекстом (в программировании и компьютерной технике) следует понимать минимальный набор данных, описывающий состояние окружения какого-либо объекта, процесса или среды (что-то вроде сложного дескриптора).
Например, каждому процессу ОС соответствует контекст, в котором этот процесс выполняется. Также и для canvas, webgl и др.
Контекст, как правило, не зависит от предыстории своего использования и часто обладает способностью к сохранению и восстановлению (нередко при помощи операции "сделать текущим").
Ты можешь рисовать при переходу к этому контексту. А при выходе из него - не можешь.
loonypy
> Что значит термин "контекст" применительно к технологиям и программированию
Вот, например, в WINAPI контекст запоминает цвет и тип пера, шаблон рисования кисти, шрифт, алгоритм смешивания цветов. Поэтому для каждой команды рисования не нужно указывать, как рисовать, контекст всё помнит. Один раз настроил контекст, нарисовал кучу линий, потом перенастроил контекст, нарисовал другую кучу линий.
olkondr
> Вот, например, в WINAPI контекст
Спасибо за пример. Понял.
SNVampyre
> при переходу к этому контексту
Не понял:)
Может быть такой пример? "Работаем с методом Write в контексте объекта Paper"? У объекта Screen так же может быть метод Write, а используя понятие "контекст" в речи и на письме их получится различать (либо использовать альтернативу: Paper.Write(), Screen.Write() -- в речи это будет звучать по-гиковски).
loonypy
> "Работаем с методом Write в контексте объекта Paper"?
Нет. Например создал окно, создал контекст OpenGL, получил адреса функций и начал рисовать, всё работает. Создал другое окно, попытался использовать функции OpenGL, всё свалилось, потому что контекста нет. То же самое с OpenAL и любой другой библиотекой, работающей по принципу стейт-машины. Запустил другой поток - там контекст должен быть другой.
Насколько я понимаю, у тебя даже такого вопроса не стоит, тебе устройство создали и ты с ним рисуешь.
SNVampyre
Т.е. когда в программировании говорят про контекст, то имеют ввиду что-то вроде набора глобальных переменных и структур для использования в определенном количестве функций (opengl, webgl, canvas, openal,...)? И используется это понятие, соответственно, если такой глобальный "набор" есть, если же нет - не используется?
loonypy
Ну что-то в этом роде.
Тема в архиве.