Войти
ПрограммированиеФорумВеб

Контекст Canvas, контекст WebGL. Что значит контекст?

#0
11:37, 1 янв. 2012

Поздравляю всех с наступившим 2012м.
Теперь к будням. :(
Определение с вики: контекст - относительно законченный отрывок письменной или устной речи (текста), общий смысл которого позволяет уточнить значение отдельных входящих в него слов, предложений, и т. п.
Один и тот же метод будет вести себя по-разному в зависимости от "окружения"? Что значит термин "контекст" применительно к технологиям и программированию?


#1
13:34, 1 янв. 2012

канвас это просто поле для рисования он сам ничего не умеет.
А контекст это тот выбранный способ рисования которым ты сейчас пользуешься, в контексте 2д рисования доступны только 2д команды например. В контексте вебгл доступны команды 3д.

#2
14:21, 1 янв. 2012

Пытаюсь понять смысл термина, по всякому манипулируя его определением, поэтому, если тупо заменить в определении некоторые слова, то получится:
отрывок речи - программа ("окружение"): модуль, метод, функция, процедура, main(){...}
отдельно входящее слово - название: переменной, метода, функции, процедуры.

kvakvs
>контексте 2д рисования доступны только 2д команды например. В контексте вебгл доступны команды 3д.
Читал, что canvas - часть html, webgl - api доступа к видеокарте.
Получается, контекст канваса - хтмл, контекс вебгл - api, поддержанное аппаратной реализацией?
В речи одно и то же слово в разных контекстах может трактоваться по разному. Если в программировании так же, то контекст 2д и контекст 3д состоят из одинаковых методов (хотя бы в названиях), но с разной реализацией. Верная аналогия?

з.ы. 
Для лучшего закрепления хотелось бы примеров типа "то-то является контекстом того-то".

#3
15:11, 1 янв. 2012

Считаю, что под контекстом (в программировании и компьютерной технике) следует понимать минимальный набор данных, описывающий состояние окружения какого-либо объекта, процесса или среды (что-то вроде сложного дескриптора).
Например, каждому процессу ОС соответствует контекст, в котором этот процесс выполняется. Также и для canvas, webgl и др.

Контекст, как правило, не зависит от предыстории своего использования и часто обладает способностью к сохранению и восстановлению (нередко при помощи операции "сделать текущим").

#4
15:32, 1 янв. 2012

Ты можешь рисовать при переходу к этому контексту. А при выходе из него - не можешь.

#5
21:26, 1 янв. 2012

loonypy
> Что значит термин "контекст" применительно к технологиям и программированию
Вот, например,  в WINAPI контекст запоминает цвет и тип пера, шаблон рисования кисти, шрифт, алгоритм смешивания цветов. Поэтому для каждой команды рисования не нужно указывать, как рисовать, контекст всё помнит. Один раз настроил контекст, нарисовал кучу линий, потом перенастроил контекст, нарисовал другую кучу линий.

#6
14:00, 2 янв. 2012

olkondr
> Вот, например, в WINAPI контекст
Спасибо за пример. Понял.

SNVampyre
> при переходу к этому контексту
Не понял:)

Может быть такой пример? "Работаем с методом Write в контексте объекта Paper"?  У объекта Screen так же может быть метод Write, а используя понятие "контекст" в речи и на письме их получится различать (либо использовать альтернативу: Paper.Write(), Screen.Write() -- в речи это будет звучать по-гиковски).

#7
14:19, 2 янв. 2012

loonypy
> "Работаем с методом Write в контексте объекта Paper"?
Нет. Например создал окно, создал контекст OpenGL, получил адреса функций и начал рисовать, всё работает. Создал другое окно, попытался использовать функции OpenGL, всё свалилось, потому что контекста нет. То же самое с OpenAL и любой другой библиотекой, работающей по принципу стейт-машины. Запустил другой поток - там контекст должен быть другой.
Насколько я понимаю, у тебя даже такого вопроса не стоит, тебе устройство создали и ты с ним рисуешь.

#8
16:11, 3 янв. 2012

SNVampyre
Т.е. когда в программировании говорят про контекст, то имеют ввиду что-то вроде набора  глобальных переменных и структур для использования в определенном количестве функций (opengl, webgl, canvas, openal,...)? И используется это понятие, соответственно, если такой глобальный "набор" есть, если же нет - не используется?

#9
16:56, 3 янв. 2012

loonypy
Ну что-то в этом роде.

ПрограммированиеФорумВеб

Тема в архиве.