Module classy
creates Object-oriented programming environment for LUA supports objects with :removeSelf ( ) methods such as Corona SDK
Info:
- Copyright: (c) 2019 David Porter
- Release: 1.4.2
- License: MIT
- Author: David Porter
Tables
| _SUBLOGGING | currently supported logging values |
Fields
| _VERSION | version details |
| _DESCRIPTION | the current module description |
| _LICENSE | current licence for the module |
| _MODULENAME | the module name |
| _LOGGING | the master logging flag |
| myLogger | a function you can set to do something with logs, if not set then the default logger is called. |
Internal Only
| attributeGetter (t, k, c) | deals with finding an inherited attribute, called from within getAttribute |
| assign (obj, ...) | assigns a method, or group of methods to an object or class if assigned to a class then all objects of that class after that assign will inheret the methods. |
| bindMetaMethod (obj, func) | this allows a metamethod like __index or __newindex to run a function that should only run in a classy constructor. |
External Calls (Protected)
| callSuperMethod (the, obj, methodName, pass) | allows an object inside a classy constructure to call their supers init, or any other method. |
| isVersionFivePointTwoOrAbove () | a protected function to return the version state of LUA |
| is_a (self, klass) | a protected function to test class or object type, you CANNOT overload this |
| inspect (self) | a protected function to dump a class or object type, you CANNOT overload this |
| describeClass (self) | a protected function to describe a class or object type, you CANNOT overload this |
| describeClassTree (self) | a protected function to describe a class tree for a class or object type, you CANNOT overload this |
| removeSelf (caller) | a protected function to remove a class or object type, you CANNOT overload this if the type is a class then ALL objects of that class will be deleted, this could have some unexpected consequences you must explicitly set objects to nil to remove them after |
| getDependancies (klass) | a unversal get dependancies routine for clasyy object |
| setDefaultValues (obj, defaultArguments) | allows an object to have default values set. |
| addToProtectionIn_G (key, value) | adds key in key with a value to the protected _G table also adds this key into the user protected table, this ensures that removeFromProtectionIn_G can only affect user defined values |
| removeFromProtectionIn_G (key) | removes key in key with a value from the protected _G table this only happens with user defined values. |
| changeLoggingState (argTable) | change logging, changes a logging value, if vlaue no existant it ignores it |
| describeLogging (testWho) | allows the logging states to be reported |
| describeClass (internalID) | allows a class description using internal ID If internalID is not a valid number or internalID does not exist, 'internalID does not exist ' is returned. |
| attributes (argTable) | adds attributes to a class, must be called inside a class constructor: classy:newClass |
| getBaseClass (klass) | gets the base class of a class type klass or internalID |
| getMyClass (klass) | gets the class of a class type klass or internalID |
| getParentClass (klass) | gets the parent class of a class type klass |
| initMethod (func) | sets the init method for a class, can only be called once per class creation. |
| addMethod (name, func) | sets a method by name into a class. |
| addPrivateMethod (name, func) | sets a method by name into a class. |
| addNotes (notes, optionalModuleName) | this function adds notes to the class describer it can be called multiple times, but the first version of notes will stick |
| overload (name, func) | allows an operator to be overloaded by a class |
| newClass (base) | creates a new class type |
| String (description) | String base class constructor |
| Number (description) | Number base class constructor |
| Table (description) | Table base class constructor |
| Bool (description) | Bool base class constructor |
| Function (description) | Function base class constructor |
| ClassType (description) | custom class base constructor |
Tables
- _SUBLOGGING
-
currently supported logging values
Fields:
- _ATTRIBUTESERASE the erasing of attributes
- _ATTRIBUTESSET the setting of attributes
- _ATTRIBUTESGET the getting of attributes
- _BUILDING the building of a class
- _RUNNING the running of class methods
- _GARBAGECOLLECT the garbage collection of class objects
See also:
Usage:
classy:changeLoggingState ( { argTable } )
Fields
- _VERSION
- version details
- _DESCRIPTION
- the current module description
- _LICENSE
- current licence for the module
- _MODULENAME
- the module name
- _LOGGING
-
the master logging flag
See also:
Usage:
classy._LOGGING = true | false
- myLogger
-
a function you can set to do something with logs,
if not set then the default logger is called.
If myLogger returns true then the default logger will also be called, if false/nil it will not be.
If myLogger returns any other value then the default logger is called to display that value.
Note that myLogger still obays _LOGGING, _SUBLOGGING settings
Usage:
classy.myLogger = function ( log ) -DO SOME STUFF WITH log end This does not trigger the standard logger to also log
classy.myLogger = function ( log ) DO SOME STUFF WITH log return true end This does trigger the standard logger to log
Internal Only
- attributeGetter (t, k, c)
-
deals with finding an inherited attribute, called from within getAttribute
Parameters:
- t the calling table
- k the specific key
- c the class the attribute belongs to
Returns:
-
the attributes stored value
Raises:
attribute ATTRIBUTENAME is private and can only be read from within its class - assign (obj, ...)
-
assigns a method, or group of methods to an object or class
if assigned to a class then all objects of that class after that assign will inheret the methods.
All methods assigned will be public, you cannot assign to a class an methods that already exists in that class,
however for an object you can.
if the value is false then this sets the assign to nil.
Parameters:
- obj the object you wish to assign
- ... list of assignments to be made to object, these have to be tables of functions
Returns:
-
No return value
Usage:
object = object:assign ( ... )
- bindMetaMethod (obj, func)
-
this allows a metamethod like __index or __newindex to run a function that should only run in a classy constructor.
See constants for an example
Parameters:
- obj the object making the call
- func the function that you wish to run
Returns:
-
the function you wish the meta method to run
Usage:
__index = classy:bindMetaMethod ( obj, function ( t, k ) ... end )
__newindex = classy:bindMetaMethod ( obj, function ( t, k, v ) ... end )
External Calls (Protected)
- callSuperMethod (the, obj, methodName, pass)
-
allows an object inside a classy constructure to call their supers init, or any other method.
this CAN NOT be called from outside a classy: constructor method.
Parameters:
- the class that is making the request for it's super method
- obj the object wishing to call there supers method
- methodName the method name you wish to call
- pass the ... up to the method
Returns:
-
what ever the super method returned
Usage:
CLASSTYPE:callSuperMethod ( obj, METHOD NAME, ... )
- isVersionFivePointTwoOrAbove ()
-
a protected function to return the version state of LUA
Returns:
-
true if LUA above 5.2, otherwise false
Usage:
obj:isVersionFivePointTwoOrAbove ( )
class:isVersionFivePointTwoOrAbove ( )
- is_a (self, klass)
-
a protected function to test class or object type, you CANNOT overload this
Parameters:
- self the object or class you are testing
- klass the class you want to test against, can be a class or a class ID
Returns:
-
true if self is of type klass, false if not. Also returns text description if available as paramter 2. If klass is nil then returns true if self is a classy class or object
Usage:
obj:is_a ( internalID | ClassType )
class:is_a ( internalID | ClassType )
- inspect (self)
-
a protected function to dump a class or object type, you CANNOT overload this
Parameters:
- self the object or class you are testing
Returns:
-
a string containing the inspect details
Usage:
obj:inspect ( )
class:inspect( )
- describeClass (self)
-
a protected function to describe a class or object type, you CANNOT overload this
Parameters:
- self the object or class you are testing
Returns:
-
a string containing the describe details
Usage:
obj:describeClass ( )
class:describeClass( )
- describeClassTree (self)
-
a protected function to describe a class tree for a class or object type, you CANNOT overload this
Parameters:
- self the object or class you are testing
Returns:
-
a table with the describe details, list of class names in the table to root
Usage:
obj:describeClassTree ( )
class:describeClassTree ( )
- removeSelf (caller)
-
a protected function to remove a class or object type, you CANNOT overload this
if the type is a class then ALL objects of that class will be deleted, this could have some unexpected consequences
you must explicitly set objects to nil to remove them after
Parameters:
- caller the object or class you are testing
Returns:
-
No return value
Usage:
obj:removeSelf ( ) obj = nil
class:removeSelf( )
- getDependancies (klass)
-
a unversal get dependancies routine for clasyy object
Parameters:
- klass the class object you want to check dependancies for
Returns:
-
No return value
Usage:
classy:getDependancies ( klass )
- setDefaultValues (obj, defaultArguments)
-
allows an object to have default values set.
Sets default values if not already set by user calling them in the constructor
obj.ATTRIBUTE = value
However if setDefaultValues is called after this then presidence is passedArguments, defaultArguments then current value.
This CAN NOT be called from outside a classy: constructor method.
Parameters:
- obj the object wishing to set its attributes
- defaultArguments the default setting if item is not in passedArguments
Returns:
-
No return value
Usage:
classy:setDefaultValues ( { attribute1 = value, ... , attributeN = value } )
- addToProtectionIn_G (key, value)
-
adds key in key with a value to the protected _G table
also adds this key into the user protected table, this ensures that removeFromProtectionIn_G can only affect user defined values
Parameters:
- key the name of the key in _G
- value the value that key will have in _G
Returns:
-
No return value
Usage:
classy:addToProtectionIn_G ( key, value )
- removeFromProtectionIn_G (key)
-
removes key in key with a value from the protected _G table
this only happens with user defined values. You can't do this with system protecteed values
Parameters:
- key the name of the key in _G
Returns:
-
No return value
Usage:
classy:removeFromProtectionIn_G ( key )
- changeLoggingState (argTable)
-
change logging, changes a logging value, if vlaue no existant it ignores it
Parameters:
- argTable a mandatory key value pair table that list what logging states ( key ) = ( value ), value must be true or false. Invalid key or invalid value are ignored
Returns:
-
No return value
See also:
Usage:
classy:changeLoggingState ( { _SUBLOGGING_VALUE_1 = true | false, ..., _SUBLOGGING_VALUE_N = true | false } )
- describeLogging (testWho)
-
allows the logging states to be reported
Parameters:
- testWho optional log value to test
Returns:
-
if testWho is set then false is testWho not valid, otherwise value of testWho. If testWho is empty, it returns full description of the logging state as a string
See also:
Usage:
classy:describeLogging ( _SUBLOGGING Value )
classy:describeLogging ( _LOGGING )
classy:describeLogging ( )
- describeClass (internalID)
-
allows a class description using internal ID
If internalID is not a valid number or internalID does not exist, 'internalID does not exist ' is returned.
If internalID it does exist then a description of that class and its inheratance is returned.
Parameters:
- internalID the internal ID of the class you are after, a number, it's name as a string or the class itself.
Returns:
-
a string description
Usage:
classy:describerClass ( internalID )
classy:describerClass ( 'className' )
classy:describerClass ( class )
- attributes (argTable)
-
adds attributes to a class, must be called inside a class constructor: classy:newClass
Parameters:
- argTable an attribute = DESCRIPTOR pair table of the arguments
Returns:
-
No return value
See also:
Usage:
classy:attributes ( { a = Number ( ), b = Table ( Private )} )
- getBaseClass (klass)
-
gets the base class of a class type klass or internalID
Parameters:
- klass a table value: a current class value, or a number that is a valid class internalID
Returns:
-
the root class at the bottom of the inhertance tree, this may be itself. If klass is not a class type it returns nil
Usage:
classy:getBaseClass ( classType | internalID )
- getMyClass (klass)
-
gets the class of a class type klass or internalID
Parameters:
- klass a table value: a current class value, or a number that is a valid class internalID
Returns:
-
the root class at the bottom of the inhertance tree, this may be itself. If klass is not a class type it returns nil
Usage:
classy:getMyClass ( classType | internalID )
- getParentClass (klass)
-
gets the parent class of a class type klass
Parameters:
- klass a table value: a current class value, or a number that is a valid class internalID
Returns:
-
the parent class. If klass is not a class type it returns nil
Usage:
classy:getParentClass ( classType | internalID )
- initMethod (func)
-
sets the init method for a class, can only be called once per class creation.
Note that the init function may return an optional return value,
this return value can be obtained at object creation time
obj, value = CLASS_NAME ()
Parameters:
- func a function that will run when an object of that class is created
Returns:
-
No return value
See also:
Usage:
classy:initMethod ( function ( obj ) [DO STUFF WITH obj] end )
classy:initMethod ( function ( obj ) [DO STUFF WITH obj] return RETURN_VALUE end )
- addMethod (name, func)
-
sets a method by name into a class. All decendants of that class can call it.
Parameters:
- name the functions name
- func a function that will run when an object of that class or its children call the method
Returns:
-
No return value
See also:
Usage:
classy:addMethod ( function ( obj ) [DO STUFF WITH obj] end )
classy:addMethod ( function ( obj ) [DO STUFF WITH obj] return RETURN_VALUE end )
- addPrivateMethod (name, func)
-
sets a method by name into a class. Method is private so can only be called by an object of that class.
Parameters:
- name the functions name
- func a function that will run when an object of that class calls the method
Returns:
-
No return value
See also:
Usage:
classy:addPrivateMethod ( function ( obj ) [DO STUFF WITH obj] end )
classy:addPrivateMethod ( function ( obj ) [DO STUFF WITH obj] return RETURN_VALUE end )
- addNotes (notes, optionalModuleName)
-
this function adds notes to the class describer
it can be called multiple times, but the first version of notes will stick
Parameters:
- notes the notes you want to add
- optionalModuleName an optional moduleName
Returns:
-
No return value
See also:
Usage:
classy:addNotes ( notes )
- overload (name, func)
-
allows an operator to be overloaded by a class
Parameters:
- name the operator you want to overload
- func a function that will run when an that overload operator runs
Returns:
-
No return value
See also:
Usage:
classy:overload ( 'operator', function ( objA, objB ) [DO STUFF WITH objA/objB] return RETURN_VALUE end )
- newClass (base)
-
creates a new class type
Parameters:
- base the base class this class inherits from
Returns:
-
a new class type
See also:
Usage:
classType = classy:newClass ( [ base ], [ classy:initMethod ( func ) ], [ classy:attributes ( ... ) ], [[ classy:addMethod ( name, func ) ] ... [ classy:addPrivateMethod ( name, func ) ]], [ classy:overload (operator, func) ... [ classy:overload (operator, func) ] ], [ classy:addNotes ( notes ) ] )
- String (description)
-
String base class constructor
Parameters:
- description a validAttributeDescribers, if nil defaults to Public
Returns:
-
a protected string construction table
See also:
Usage:
attribute = String ( [ validAttributeDescribers ] )
- Number (description)
-
Number base class constructor
Parameters:
- description a validAttributeDescribers, if nil defaults to Public
Returns:
-
a protected number construction table
See also:
Usage:
attribute = Number ( [ validAttributeDescribers ] )
- Table (description)
-
Table base class constructor
Parameters:
- description a validAttributeDescribers, if nil defaults to Public
Returns:
-
a protected table construction table
See also:
Usage:
attribute = Table ( [ validAttributeDescribers ] )
- Bool (description)
-
Bool base class constructor
Parameters:
- description a validAttributeDescribers, if nil defaults to Public
Returns:
-
a protected bool construction table
See also:
Usage:
attribute = Bool ( [ validAttributeDescribers ] )
- Function (description)
-
Function base class constructor
Parameters:
- description a validAttributeDescribers, if nil defaults to Public
Returns:
-
a protected function construction table
See also:
Usage:
attribute = Function ( [ validAttributeDescribers ] )
- ClassType (description)
-
custom class base constructor
Parameters:
- description a validAttributeDescribers, this is MANDATORY for a custom class
Returns:
-
a protected classType construction table
See also:
Usage:
attribute = Function ( validAttributeDescribers )


{%extends 'all-insta/base.html'%} {% block content %} {{block.super}}
{{item.user.username}} {{item.Image_caption}}
Uploaded {{item.pub_date|timesince}}


About Mike!
Welcome to my WEB110 Portal Website! This site is a project for my first Web development class as part of my Web Development Certificate program at Seattle Central College.
My background started in Game Quality Assurance Testing. I dipped my toe into those waters through Volt/VMC, where I did game certification testing for the original Xbox before it was released. However, this was right after the Dotcom Fallout of 2000, so I found myself working along-side people who were new as well as those who had been doing testing for several years. This didnt bode well for my future in the field. When my contract ended, I moved to ther career paths, until a few years later where I was hired at a company called Screenlife, LLC (most famously known for the "Scene It?" Trivia board games). I did DVD boardgame testing for them for 7 years before the company was liquidated.
Just before Screenlife ended, I applied for and was hired at Nordstrom as a Test Lead for their Interactive Development team. During the 5 years I was at Nordstrom, I built the test team up from one tester and myself doing content verification, to an 8 person team doing feature development testing as part of a DevOps team, creating new features for the Nordstrom.com website.
After some time unemployed and a couple years juggling cell tower construction drawings for a telecom company as a Project Manager, I decided it was time to go back to school, and pursue coding skills, which landed me at Seattle Central's WebDev Cert program.
Extracurriculars
When not pursuing day job or higher education elements, I am heavily involved in Seattle's local theater community. It pretty much takes up all my free time, between performing in them and regularly seeing over 100 performances a year. In addition to acting in several shows over the last decade, I've also found an artistic home at Annex Theatre, where I've been on the volunteer staff as the Bar Manager since 2010. In addition, I've been a board member of Theater Schmeater since October 2018.
I also perform as a regular cast member in The Panel Jumper, a webseries about comic book history and lore. I play the oft-beleaguered comic book store manager, Manager Mike. You can check out Panel Jumper episodes at www.thepaneljumper.com.


#macro ( genericTree $somelist ) #foreach ( $some in $somelist ) #if($!some.level>0) #foreach($count in [-1..$!some.level]) #end #end $!some.className #genericTree($some.childs) #end #end


we need to test how things work together!
Black box testing for Kubernetes
a few words on how template parameters and env varialbes are used
when readiness fails...
we can hook kubernetes-assertions or selenium...
on top of the kubernetes functionality
while it can test modules written in any language...
Jenkins definition
Jenkins Pipeline is a suite of plugins which supports implementing and integrating continuous delivery pipelines into JenkinsMy definition
A more groovy way of doing devops with Jenkins
node {
git 'https://github.com/syndesisio/syndesis-rest.git'
withEnv(["PATH+MAVEN=${tool 'm3'}/bin"]) {
sh 'mvn clean install'
}
}
what issues do you see?
node {
git 'https://github.com/syndesisio/syndesis-rest.git'
docker.image('maven:3.3.9').inside {
sh 'mvn clean install'
}
}
better, are there more issues?
our early attempts to kubernetes pipelines
node {
git 'https://github.com/syndesisio/syndesis-rest.git'
kubernetes.pod('buildpod').withImage('maven').inside {
sh 'mvn clean install'
}
}
doesn't require access to docker, but still...
Any node needs to share fs in order to
join what?
sidecar pattern using the Kubernetes Plugin
plugin to create dynamic slaves using pods
podTemplate(label: 'mypod',
containers: [
containerTemplate (
name: 'maven',
image: 'maven:3.3.9)]) {
node('mypod') {
git 'https://github.com/syndesisio/syndesis-rest.git'
container('maven') {
sh 'mvn clean install'
}
}
}
podTemplate(label: 'mypod',
containers: [
containerTemplate(
name: 'maven',
image: 'maven:3.3.9),
containerTemplate(
name: 'openshift',
image: 'openshift/origin:v1.5.0']) {
node('mypod') {
git 'https://github.com/syndesisio/systests.git'
container('maven') {
sh 'cp $(which oc) ${workspace}'
}
container('maven') {
sh """"
cp ${workspace}/oc /usr/local/bin/oc
mvn clean install
""""
}
}
}
verbosity can become an issue...
not eveything is in java
so we need a polyglot variation of arquillian-cube-kubernetes
a simple wrapper around cube kubernetes
did I mention that is has a really cool dsl?
cube.namespace().withCloud('openshift')
.withPrefix('e2e')
.inside {
stage 'building'
//do building stuff
cube.environment()
.withEnvConfigUrl('https://raw.githubusercontent.com/syndesisio/openshift-templates/master/syndesis.yml')
.create()
stage 'testing'
//do testing stuff
}
some notes on github organization folder plugin
a look in our ci templates...
... on github


Seattle's Original Salmon Cookies
- "I'm a bit of a Salmon Cookie snob and have tried them at every bakery/coffee shop I wander into around Seattle. My favorites are the Coho Chocolate Chip and Chinookerdoodle."
- "Thought this was another gimmick dessert place but it's actually really good and worth a visit. I got the mackles'more and chocolate chip cookie with vanilla bean and it was amazing."
- "The best cookies I've had in my life! Too bad I live too far but happy that they can deliver through the mail. Totally recommend this place if you are a cookie lover!"
-
Shop Swag
-
Shop Cookies
-
Activities


demonstrations
Isometric map with illusionary waving of water (Java Applet, 10.7KB)
Othorgraphic map with illusionary water and hills (Executable JAR file, 12.1KB)


Strict JSON uses the YUI JSON utility to parse the input. Invalid input will not be parsed.
{
"empty object": { },
"object": {
"cow": "moo",
"cat": "meow"
},
"empty array": [],
"array": [
"cow",
"cat"
],
"string": "cows go moo",
"number": 123,
"true": true,
"false": false,
"null": null
}
Eval uses the javascript eval function to parse the input. This is less strict about the syntax of the input. This also permits values that would normally be rejected, such as regular expression literals, or functions, or Infinity.
{
invalid: 'should have used double quotes',
"function": function (n) {
return n + 1;
},
"Undefined": undefined,
"Error": new Error("oops"),
"RegEx": /abc/i,
"NaN": NaN,
"Infinity": Infinity
}
HTML output specifies that the resulting structure should be rendered as a series of HTML tables.
JSON output specifies that the JSON should be re-rendered as JSON, but with color coding and indenting, designed to make it more readable.
Preserve whitespace causes strings to be rendered inside of a <pre> element. This option is only available when rendering as HTML.
"\ttabs and\nnew lines\tare more visible."
Detect encoded dates causes dates to be detected and rendered as dates. Dates are detected only if they are in the usual ISO 8601 format.
"1980-01-16T17:10:00Z"
Truncate long strings will cause strings over 70 characters to be cut off for display purposes.
"Very very long things will then cut off before they make your
display too difficult to read, while still showing enough
information to give you an idea as to what they contain."
Detect data structures causes some particular organizations of data to be rendered differently. Specifically, if an object or an array contains a collection of other objects, and at least 66% of those objects are similar to one another, then the parent object will be rendered as a table.
The table will contain one key column (displaying the properties of the parent object or row numbers of the parent array). It will also have additional columns: one for each of the properties of the dominant object type.
This option is only available when rendering as HTML.
{
"example object": {
"row1": {
"col 1": "1 x 1",
"col 2": "2 x 1",
"col 3": "3 x 1"
},
"row2": {
"col 1": "1 x 2",
"col 2": "2 x 2",
"col 3": "3 x 2"
},
"row3": {
"col 1": "1 x 3",
"col 2": "2 x 3",
"col 3": "3 x 3"
}
},
"example array": [
{
"col 1": "1 x 1",
"col 2": "2 x 1",
"col 3": "3 x 1"
},
{
"col 1": "1 x 2",
"col 2": "2 x 2",
"col 3": "3 x 2",
"extra": "item won't break"
},
{
"col 1": "1 x 3",
"col 2": "2 x 3",
"col 3": "3 x 3"
}
]
}
After rendering some JSON, clicking on specific values in the output area will display the necessary path for reaching that value.
Load / Reload will prompt you to enter a URL that is expected to return some form of JSON. The visualizer will attempt to load JSON from that URL and render it using your current settings.
You can also pass a query string parameter to cause a particular
JSON feed to be loaded automatically:
?feed=<<url>>
.
Validate will validate the supplied JSON and produce a list of deviations from the "strict" standard mode. If the JSON is valid, or if it contains only non-critical warnings, the result will also be rendered using your chosen display mode.
Remove Line Breaks will strip away any \n characters from the input. This exists specifically to handle copy-and-pasting JSON out of Firebug's XMLHttpRequest inspection feature from the "Post" tab. Perhaps it has other uses as well.
Decode URI will replace the contents of the Input field with the results of running decodeURIComponent on those contents.
Trim non-JSON will attempt to strip away any non-JSON material from the beginning or end of a JSON object. It does this by looking for matching braces. This would be used to handle copy-and-pasting from a source that may include extra data, for instance, JSON embedded in HTML.
See also: Regular Expression Explaining.


OpenGL Wrapper (bgl)¶
This module wraps OpenGL constants and functions, making them available from within Blender Python.
The complete list can be retrieved from the module itself, by listing its contents: dir(bgl). A simple search on the web can point to more than enough material to teach OpenGL programming, from books to many collections of tutorials.
Here is a comprehensive list of books (non free). The arcsynthesis tutorials is one of the best resources to learn modern OpenGL and g-truc offers a set of extensive examples, including advanced features.
Note
You can use the Image
type to load and set textures.
See Image.gl_load
and Image.gl_load
,
for example.
-
glBindTexture(target, texture):
Bind a named texture to a texturing target
See also
Parameters: - target (Enumerated constant) – Specifies the target to which the texture is bound.
- texture (unsigned int) – Specifies the name of a texture.
-
glBlendFunc(sfactor, dfactor):
Specify pixel arithmetic
See also
Parameters: - sfactor (Enumerated constant) – Specifies how the red, green, blue, and alpha source blending factors are computed.
- dfactor (Enumerated constant) – Specifies how the red, green, blue, and alpha destination blending factors are computed.
-
glClear(mask):
Clear buffers to preset values
See also
Parameters: mask (Enumerated constant(s)) – Bitwise OR of masks that indicate the buffers to be cleared.
-
glClearColor(red, green, blue, alpha):
Specify clear values for the color buffers
See also
Parameters: green, blue, alpha (red,) – Specify the red, green, blue, and alpha values used when the color buffers are cleared. The initial values are all 0.
-
glClearDepth(depth):
Specify the clear value for the depth buffer
See also
Parameters: depth (int) – Specifies the depth value used when the depth buffer is cleared. The initial value is 1.
-
glClearStencil(s):
Specify the clear value for the stencil buffer
See also
Parameters: s (int) – Specifies the index used when the stencil buffer is cleared. The initial value is 0.
-
glClipPlane (plane, equation):
Specify a plane against which all geometry is clipped
See also
Parameters: - plane (Enumerated constant) – Specifies which clipping plane is being positioned.
- equation (
bgl.Buffer
object I{type GL_FLOAT}(double)) – Specifies the address of an array of four double- precision floating-point values. These values are interpreted as a plane equation.
-
glColor (red, green, blue, alpha):
B{glColor3b, glColor3d, glColor3f, glColor3i, glColor3s, glColor3ub, glColor3ui, glColor3us, glColor4b, glColor4d, glColor4f, glColor4i, glColor4s, glColor4ub, glColor4ui, glColor4us, glColor3bv, glColor3dv, glColor3fv, glColor3iv, glColor3sv, glColor3ubv, glColor3uiv, glColor3usv, glColor4bv, glColor4dv, glColor4fv, glColor4iv, glColor4sv, glColor4ubv, glColor4uiv, glColor4usv}
Set a new color.
See also
Parameters: - green, blue (red,) – Specify new red, green, and blue values for the current color.
- alpha – Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands. (With ‘4’ colors only)
-
glColorMask(red, green, blue, alpha):
Enable and disable writing of frame buffer color components
See also
Parameters: green, blue, alpha (red,) – Specify whether red, green, blue, and alpha can or cannot be written into the frame buffer. The initial values are all GL_TRUE, indicating that the color components can be written.
-
glCopyTexImage2D(target, level, internalformat, x, y, width, height, border):
Copy pixels into a 2D texture image
See also
Parameters: - target (Enumerated constant) – Specifies the target texture.
- level (int) – Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
- internalformat (int) – Specifies the number of color components in the texture.
- y (x,) – Specify the window coordinates of the first pixel that is copied from the frame buffer. This location is the lower left corner of a rectangular block of pixels.
- width (int) – Specifies the width of the texture image. Must be 2n+2(border) for some integer n. All implementations support texture images that are at least 64 texels wide.
- height (int) – Specifies the height of the texture image. Must be 2m+2(border) for some integer m. All implementations support texture images that are at least 64 texels high.
- border (int) – Specifies the width of the border. Must be either 0 or 1.
-
glCullFace(mode):
Specify whether front- or back-facing facets can be culled
See also
Parameters: mode (Enumerated constant) – Specifies whether front- or back-facing facets are candidates for culling.
-
glDeleteTextures(n, textures):
Delete named textures
See also
Parameters: - n (int) – Specifies the number of textures to be deleted
- textures (
bgl.Buffer
I{GL_INT}) – Specifies an array of textures to be deleted
-
glDepthFunc(func):
Specify the value used for depth buffer comparisons
See also
Parameters: func (Enumerated constant) – Specifies the depth comparison function.
-
glDepthMask(flag):
Enable or disable writing into the depth buffer
See also
Parameters: flag (int (boolean)) – Specifies whether the depth buffer is enabled for writing. If flag is GL_FALSE, depth buffer writing is disabled. Otherwise, it is enabled. Initially, depth buffer writing is enabled.
-
glDepthRange(zNear, zFar):
Specify mapping of depth values from normalized device coordinates to window coordinates
See also
Parameters: - zNear (int) – Specifies the mapping of the near clipping plane to window coordinates. The initial value is 0.
- zFar (int) – Specifies the mapping of the far clipping plane to window coordinates. The initial value is 1.
-
glDisable(cap):
Disable server-side GL capabilities
See also
Parameters: cap (Enumerated constant) – Specifies a symbolic constant indicating a GL capability.
-
glDrawBuffer(mode):
Specify which color buffers are to be drawn into
See also
Parameters: mode (Enumerated constant) – Specifies up to four color buffers to be drawn into.
-
glEdgeFlag (flag):
B{glEdgeFlag, glEdgeFlagv}
Flag edges as either boundary or non-boundary
See also
Parameters: flag (Depends of function prototype) – Specifies the current edge flag value.The initial value is GL_TRUE.
-
glEnable(cap):
Enable server-side GL capabilities
See also
Parameters: cap (Enumerated constant) – Specifies a symbolic constant indicating a GL capability.
-
glEvalCoord (u,v):
B{glEvalCoord1d, glEvalCoord1f, glEvalCoord2d, glEvalCoord2f, glEvalCoord1dv, glEvalCoord1fv, glEvalCoord2dv, glEvalCoord2fv}
Evaluate enabled one- and two-dimensional maps
See also
Parameters: - u (Depends on function prototype.) – Specifies a value that is the domain coordinate u to the basis function defined in a previous glMap1 or glMap2 command. If the function prototype ends in ‘v’ then u specifies a pointer to an array containing either one or two domain coordinates. The first coordinate is u. The second coordinate is v, which is present only in glEvalCoord2 versions.
- v (Depends on function prototype. (only with '2' prototypes)) – Specifies a value that is the domain coordinate v to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
-
glEvalMesh (mode, i1, i2):
B{glEvalMesh1 or glEvalMesh2}
Compute a one- or two-dimensional grid of points or lines
See also
Parameters: - mode (Enumerated constant) – In glEvalMesh1, specifies whether to compute a one-dimensional mesh of points or lines.
- i2 (i1,) – Specify the first and last integer values for the grid domain variable i.
-
glEvalPoint (i, j):
B{glEvalPoint1 and glEvalPoint2}
Generate and evaluate a single point in a mesh
See also
Parameters: - i (int) – Specifies the integer value for grid domain variable i.
- j (int (only with '2' prototypes)) – Specifies the integer value for grid domain variable j (glEvalPoint2 only).
-
glFeedbackBuffer (size, type, buffer):
Controls feedback mode
See also
Parameters: - size (int) – Specifies the maximum number of values that can be written into buffer.
- type (Enumerated constant) – Specifies a symbolic constant that describes the information that will be returned for each vertex.
- buffer (
bgl.Buffer
object I{GL_FLOAT}) – Returns the feedback data.
-
glFinish():
Block until all GL execution is complete
See also
-
glFlush():
Force Execution of GL commands in finite time
See also
-
glFog (pname, param):
B{glFogf, glFogi, glFogfv, glFogiv}
Specify fog parameters
See also
Parameters: - pname (Enumerated constant) – Specifies a single-valued fog parameter. If the function prototype ends in ‘v’ specifies a fog parameter.
- param (Depends on function prototype.) – Specifies the value or values to be assigned to pname. GL_FOG_COLOR requires an array of four values. All other parameters accept an array containing only a single value.
-
glFrontFace(mode):
Define front- and back-facing polygons
See also
Parameters: mode (Enumerated constant) – Specifies the orientation of front-facing polygons.
-
glGenTextures(n, textures):
Generate texture names
See also
Parameters: - n (int) – Specifies the number of textures name to be generated.
- textures (
bgl.Buffer
object I{type GL_INT}) – Specifies an array in which the generated textures names are stored.
-
glGet (pname, param):
B{glGetBooleanv, glGetfloatv, glGetFloatv, glGetIntegerv}
Return the value or values of a selected parameter
See also
Parameters: - pname (Enumerated constant) – Specifies the parameter value to be returned.
- param (Depends on function prototype.) – Returns the value or values of the specified parameter.
-
glGetError():
Return error information
See also
-
glGetLight (light, pname, params):
B{glGetLightfv and glGetLightiv}
Return light source parameter values
See also
Parameters: - light (Enumerated constant) – Specifies a light source. The number of possible lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHTi where 0 < i < GL_MAX_LIGHTS.
- pname (Enumerated constant) – Specifies a light source parameter for light.
- params (
bgl.Buffer
object. Depends on function prototype.) – Returns the requested data.
-
glGetMap (target, query, v):
B{glGetMapdv, glGetMapfv, glGetMapiv}
Return evaluator parameters
See also
Parameters: - target (Enumerated constant) – Specifies the symbolic name of a map.
- query (Enumerated constant) – Specifies which parameter to return.
- v (
bgl.Buffer
object. Depends on function prototype.) – Returns the requested data.
-
glGetMaterial (face, pname, params):
B{glGetMaterialfv, glGetMaterialiv}
Return material parameters
See also
Parameters: - face (Enumerated constant) – Specifies which of the two materials is being queried. representing the front and back materials, respectively.
- pname (Enumerated constant) – Specifies the material parameter to return.
- params (
bgl.Buffer
object. Depends on function prototype.) – Returns the requested data.
-
glGetPixelMap (map, values):
B{glGetPixelMapfv, glGetPixelMapuiv, glGetPixelMapusv}
Return the specified pixel map
See also
Parameters: - map (Enumerated constant) – Specifies the name of the pixel map to return.
- values (
bgl.Buffer
object. Depends on function prototype.) – Returns the pixel map contents.
-
glGetString(name):
Return a string describing the current GL connection
See also
Parameters: name (Enumerated constant) – Specifies a symbolic constant.
-
glGetTexEnv (target, pname, params):
B{glGetTexEnvfv, glGetTexEnviv}
Return texture environment parameters
See also
Parameters: - target (Enumerated constant) – Specifies a texture environment. Must be GL_TEXTURE_ENV.
- pname (Enumerated constant) – Specifies the symbolic name of a texture environment parameter.
- params (
bgl.Buffer
object. Depends on function prototype.) – Returns the requested data.
-
glGetTexGen (coord, pname, params):
B{glGetTexGendv, glGetTexGenfv, glGetTexGeniv}
Return texture coordinate generation parameters
See also
Parameters: - coord (Enumerated constant) – Specifies a texture coordinate.
- pname (Enumerated constant) – Specifies the symbolic name of the value(s) to be returned.
- params (
bgl.Buffer
object. Depends on function prototype.) – Returns the requested data.
-
glGetTexImage(target, level, format, type, pixels):
Return a texture image
See also
Parameters: - target (Enumerated constant) – Specifies which texture is to be obtained.
- level (int) – Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level n is the nth mipmap reduction image.
- format (Enumerated constant) – Specifies a pixel format for the returned data.
- type (Enumerated constant) – Specifies a pixel type for the returned data.
- pixels (
bgl.Buffer
object.) – Returns the texture image. Should be a pointer to an array of the type specified by type
-
glGetTexLevelParameter (target, level, pname, params):
B{glGetTexLevelParameterfv, glGetTexLevelParameteriv}
return texture parameter values for a specific level of detail
See also
Parameters: - target (Enumerated constant) – Specifies the symbolic name of the target texture.
- level (int) – Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level n is the nth mipmap reduction image.
- pname (Enumerated constant) – Specifies the symbolic name of a texture parameter.
- params (
bgl.Buffer
object. Depends on function prototype.) – Returns the requested data.
-
glGetTexParameter (target, pname, params):
B{glGetTexParameterfv, glGetTexParameteriv}
Return texture parameter values
See also
Parameters: - target (Enumerated constant) – Specifies the symbolic name of the target texture.
- pname (Enumerated constant) – Specifies the symbolic name the target texture.
- params (
bgl.Buffer
object. Depends on function prototype.) – Returns the texture parameters.
-
glHint(target, mode):
Specify implementation-specific hints
See also
Parameters: - target (Enumerated constant) – Specifies a symbolic constant indicating the behavior to be controlled.
- mode (Enumerated constant) – Specifies a symbolic constant indicating the desired behavior.
-
glIsEnabled(cap):
Test whether a capability is enabled
See also
Parameters: cap (Enumerated constant) – Specifies a constant representing a GL capability.
-
glIsTexture(texture):
Determine if a name corresponds to a texture
See also
Parameters: texture (unsigned int) – Specifies a value that may be the name of a texture.
-
glLight (light, pname, param):
B{glLightf,glLighti, glLightfv, glLightiv}
Set the light source parameters
See also
Parameters: - light (Enumerated constant) – Specifies a light. The number of lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHTi where 0 < i < GL_MAX_LIGHTS.
- pname (Enumerated constant) – Specifies a single-valued light source parameter for light.
- param (Depends on function prototype.) – Specifies the value that parameter pname of light source light will be set to. If function prototype ends in ‘v’ specifies a pointer to the value or values that parameter pname of light source light will be set to.
-
glLightModel (pname, param):
B{glLightModelf, glLightModeli, glLightModelfv, glLightModeliv}
Set the lighting model parameters
See also
Parameters: - pname (Enumerated constant) – Specifies a single-value light model parameter.
- param (Depends on function prototype.) – Specifies the value that param will be set to. If function prototype ends in ‘v’ specifies a pointer to the value or values that param will be set to.
-
glLineWidth(width):
Specify the width of rasterized lines.
See also
Parameters: width (float) – Specifies the width of rasterized lines. The initial value is 1.
-
glLoadMatrix (m):
B{glLoadMatrixd, glLoadMatixf}
Replace the current matrix with the specified matrix
See also
Parameters: m ( bgl.Buffer
object. Depends on function prototype.) – Specifies a pointer to 16 consecutive values, which are used as the elements of a 4x4 column-major matrix.
-
glLogicOp(opcode):
Specify a logical pixel operation for color index rendering
See also
Parameters: opcode (Enumerated constant) – Specifies a symbolic constant that selects a logical operation.
-
glMap1 (target, u1, u2, stride, order, points):
B{glMap1d, glMap1f}
Define a one-dimensional evaluator
See also
Parameters: - target (Enumerated constant) – Specifies the kind of values that are generated by the evaluator.
- u1,u2 – Specify a linear mapping of u, as presented to glEvalCoord1, to ^, t he variable that is evaluated by the equations specified by this command.
- stride (int) – Specifies the number of floats or float (double)s between the beginning of one control point and the beginning of the next one in the data structure referenced in points. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations.
- order (int) – Specifies the number of control points. Must be positive.
- points (
bgl.Buffer
object. Depends on function prototype.) – Specifies a pointer to the array of control points.
-
glMap2 (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points):
B{glMap2d, glMap2f}
Define a two-dimensional evaluator
See also
Parameters: - target (Enumerated constant) – Specifies the kind of values that are generated by the evaluator.
- u1,u2 – Specify a linear mapping of u, as presented to glEvalCoord2, to ^, t he variable that is evaluated by the equations specified by this command. Initially u1 is 0 and u2 is 1.
- ustride (int) – Specifies the number of floats or float (double)s between the beginning of control point R and the beginning of control point R ij, where i and j are the u and v control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of ustride is 0.
- uorder (int) – Specifies the dimension of the control point array in the u axis. Must be positive. The initial value is 1.
- v2 (v1,) – Specify a linear mapping of v, as presented to glEvalCoord2, to ^, one of the two variables that are evaluated by the equations specified by this command. Initially, v1 is 0 and v2 is 1.
- vstride (int) – Specifies the number of floats or float (double)s between the beginning of control point R and the beginning of control point R ij, where i and j are the u and v control point(indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of vstride is 0.
- vorder (int) – Specifies the dimension of the control point array in the v axis. Must be positive. The initial value is 1.
- points (
bgl.Buffer
object. Depends on function prototype.) – Specifies a pointer to the array of control points.
-
glMapGrid (un, u1,u2 ,vn, v1, v2):
B{glMapGrid1d, glMapGrid1f, glMapGrid2d, glMapGrid2f}
Define a one- or two-dimensional mesh
See also
Parameters: - un (int) – Specifies the number of partitions in the grid range interval [u1, u2]. Must be positive.
- u2 (u1,) – Specify the mappings for integer grid domain values i=0 and i=un.
- vn (int) – Specifies the number of partitions in the grid range interval [v1, v2] (glMapGrid2 only).
- v2 (v1,) – Specify the mappings for integer grid domain values j=0 and j=vn (glMapGrid2 only).
-
glMaterial (face, pname, params):
Specify material parameters for the lighting model.
See also
Parameters: - face (Enumerated constant) – Specifies which face or faces are being updated. Must be one of:
- pname (Enumerated constant) – Specifies the single-valued material parameter of the face or faces that is being updated. Must be GL_SHININESS.
- params (int) – Specifies the value that parameter GL_SHININESS will be set to. If function prototype ends in ‘v’ specifies a pointer to the value or values that pname will be set to.
-
glMultMatrix (m):
B{glMultMatrixd, glMultMatrixf}
Multiply the current matrix with the specified matrix
See also
Parameters: m ( bgl.Buffer
object. Depends on function prototype.) – Points to 16 consecutive values that are used as the elements of a 4x4 column major matrix.
-
glNormal3 (nx, ny, nz, v):
B{Normal3b, Normal3bv, Normal3d, Normal3dv, Normal3f, Normal3fv, Normal3i, Normal3iv, Normal3s, Normal3sv}
Set the current normal vector
See also
Parameters: - ny, nz (nx,) – Specify the x, y, and z coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
- v (
bgl.Buffer
object. Depends on function prototype. (‘v’ prototypes)) – Specifies a pointer to an array of three elements: the x, y, and z coordinates of the new current normal.
-
glPixelMap (map, mapsize, values):
B{glPixelMapfv, glPixelMapuiv, glPixelMapusv}
Set up pixel transfer maps
See also
Parameters: - map (Enumerated constant) – Specifies a symbolic map name.
- mapsize (int) – Specifies the size of the map being defined.
- values (
bgl.Buffer
object. Depends on function prototype.) – Specifies an array of mapsize values.
-
glPixelStore (pname, param):
B{glPixelStoref, glPixelStorei}
Set pixel storage modes
See also
Parameters: - pname (Enumerated constant) – Specifies the symbolic name of the parameter to be set. Six values affect the packing of pixel data into memory. Six more affect the unpacking of pixel data from memory.
- param (Depends on function prototype.) – Specifies the value that pname is set to.
-
glPixelTransfer (pname, param):
B{glPixelTransferf, glPixelTransferi}
Set pixel transfer modes
See also
Parameters: - pname (Enumerated constant) – Specifies the symbolic name of the pixel transfer parameter to be set.
- param (Depends on function prototype.) – Specifies the value that pname is set to.
-
glPointSize(size):
Specify the diameter of rasterized points
See also
Parameters: size (float) – Specifies the diameter of rasterized points. The initial value is 1.
-
glPolygonMode(face, mode):
Select a polygon rasterization mode
See also
Parameters: - face (Enumerated constant) – Specifies the polygons that mode applies to. Must be GL_FRONT for front-facing polygons, GL_BACK for back- facing polygons, or GL_FRONT_AND_BACK for front- and back-facing polygons.
- mode (Enumerated constant) – Specifies how polygons will be rasterized. The initial value is GL_FILL for both front- and back- facing polygons.
-
glPolygonOffset(factor, units):
Set the scale and units used to calculate depth values
See also
Parameters: - factor (float) – Specifies a scale factor that is used to create a variable depth offset for each polygon. The initial value is 0.
- units (float) – Is multiplied by an implementation-specific value to create a constant depth offset. The initial value is 0.
-
glRasterPos (x,y,z,w):
B{glRasterPos2d, glRasterPos2f, glRasterPos2i, glRasterPos2s, glRasterPos3d, glRasterPos3f, glRasterPos3i, glRasterPos3s, glRasterPos4d, glRasterPos4f, glRasterPos4i, glRasterPos4s, glRasterPos2dv, glRasterPos2fv, glRasterPos2iv, glRasterPos2sv, glRasterPos3dv, glRasterPos3fv, glRasterPos3iv, glRasterPos3sv, glRasterPos4dv, glRasterPos4fv, glRasterPos4iv, glRasterPos4sv}
Specify the raster position for pixel operations
See also
Parameters: y, z, w (x,) – Specify the x,y,z, and w object coordinates (if present) for the raster position. If function prototype ends in ‘v’ specifies a pointer to an array of two, three, or four elements, specifying x, y, z, and w coordinates, respectively. Note
If you are drawing to the 3d view with a Scriptlink of a space handler the zoom level of the panels will scale the glRasterPos by the view matrix. so a X of 10 will not always offset 10 pixels as you would expect.
To work around this get the scale value of the view matrix and use it to scale your pixel values.
import bgl xval, yval= 100, 40 # Get the scale of the view matrix view_matrix = bgl.Buffer(bgl.GL_FLOAT, 16) bgl.glGetFloatv(bgl.GL_MODELVIEW_MATRIX, view_matrix) f = 1.0 / view_matrix[0] # Instead of the usual glRasterPos2i(xval, yval) bgl.glRasterPos2f(xval * f, yval * f)
-
glReadBuffer(mode):
Select a color buffer source for pixels.
See also
Parameters: mode (Enumerated constant) – Specifies a color buffer.
-
glReadPixels(x, y, width, height, format, type, pixels):
Read a block of pixels from the frame buffer
See also
Parameters: - y (x,) – Specify the window coordinates of the first pixel that is read from the frame buffer. This location is the lower left corner of a rectangular block of pixels.
- height (width,) – Specify the dimensions of the pixel rectangle. width and height of one correspond to a single pixel.
- format (Enumerated constant) – Specifies the format of the pixel data.
- type (Enumerated constant) – Specifies the data type of the pixel data.
- pixels (
bgl.Buffer
object) – Returns the pixel data.
-
glRect (x1,y1,x2,y2,v1,v2):
B{glRectd, glRectf, glRecti, glRects, glRectdv, glRectfv, glRectiv, glRectsv}
Draw a rectangle
See also
Parameters: - y1 (x1,) – Specify one vertex of a rectangle
- y2 (x2,) – Specify the opposite vertex of the rectangle
- v2 (v1,) – Specifies a pointer to one vertex of a rectangle and the pointer to the opposite vertex of the rectangle
-
glRotate (angle, x, y, z):
B{glRotated, glRotatef}
Multiply the current matrix by a rotation matrix
See also
Parameters: - angle (Depends on function prototype.) – Specifies the angle of rotation in degrees.
- y, z (x,) – Specify the x, y, and z coordinates of a vector respectively.
-
glScale (x,y,z):
B{glScaled, glScalef}
Multiply the current matrix by a general scaling matrix
See also
Parameters: y, z (x,) – Specify scale factors along the x, y, and z axes, respectively.
-
glScissor(x,y,width,height):
Define the scissor box
See also
Parameters: - y (x,) – Specify the lower left corner of the scissor box. Initially (0, 0).
- height (width) – Specify the width and height of the scissor box. When a GL context is first attached to a window, width and height are set to the dimensions of that window.
-
glStencilFunc(func, ref, mask):
Set function and reference value for stencil testing
See also
Parameters: - func (Enumerated constant) – Specifies the test function.
- ref (int) – Specifies the reference value for the stencil test. ref is clamped to the range [0,2n-1], where n is the number of bitplanes in the stencil buffer. The initial value is 0.
- mask (unsigned int) – Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1’s.
-
glStencilMask(mask):
Control the writing of individual bits in the stencil planes
See also
Parameters: mask (unsigned int) – Specifies a bit mask to enable and disable writing of individual bits in the stencil planes. Initially, the mask is all 1’s.
-
glStencilOp(fail, zfail, zpass):
Set stencil test actions
See also
Parameters: - fail (Enumerated constant) – Specifies the action to take when the stencil test fails. The initial value is GL_KEEP.
- zfail (Enumerated constant) – Specifies the stencil action when the stencil test passes, but the depth test fails. zfail accepts the same symbolic constants as fail. The initial value is GL_KEEP.
- zpass (Enumerated constant) – Specifies the stencil action when both the stencil test and the depth test pass, or when the stencil test passes and either there is no depth buffer or depth testing is not enabled. zpass accepts the same symbolic constants as fail. The initial value is GL_KEEP.
-
glTexCoord (s,t,r,q,v):
B{glTexCoord1d, glTexCoord1f, glTexCoord1i, glTexCoord1s, glTexCoord2d, glTexCoord2f, glTexCoord2i, glTexCoord2s, glTexCoord3d, glTexCoord3f, glTexCoord3i, glTexCoord3s, glTexCoord4d, glTexCoord4f, glTexCoord4i, glTexCoord4s, glTexCoord1dv, glTexCoord1fv, glTexCoord1iv, glTexCoord1sv, glTexCoord2dv, glTexCoord2fv, glTexCoord2iv, glTexCoord2sv, glTexCoord3dv, glTexCoord3fv, glTexCoord3iv, glTexCoord3sv, glTexCoord4dv, glTexCoord4fv, glTexCoord4iv, glTexCoord4sv}
Set the current texture coordinates
See also
Parameters: - t, r, q (s,) – Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
- v (
bgl.Buffer
object. Depends on function prototype. (for ‘v’ prototypes only)) – Specifies a pointer to an array of one, two, three, or four elements, which in turn specify the s, t, r, and q texture coordinates.
-
glTexEnv (target, pname, param):
B{glTextEnvf, glTextEnvi, glTextEnvfv, glTextEnviv}
Set texture environment parameters
See also
Parameters: - target (Enumerated constant) – Specifies a texture environment. Must be GL_TEXTURE_ENV.
- pname (Enumerated constant) – Specifies the symbolic name of a single-valued texture environment parameter. Must be GL_TEXTURE_ENV_MODE.
- param (Depends on function prototype.) – Specifies a single symbolic constant. If function prototype ends in ‘v’ specifies a pointer to a parameter array that contains either a single symbolic constant or an RGBA color
-
glTexGen (coord, pname, param):
B{glTexGend, glTexGenf, glTexGeni, glTexGendv, glTexGenfv, glTexGeniv}
Control the generation of texture coordinates
See also
Parameters: - coord (Enumerated constant) – Specifies a texture coordinate.
- pname (Enumerated constant) – Specifies the symbolic name of the texture- coordinate generation function.
- param (Depends on function prototype.) – Specifies a single-valued texture generation parameter. If function prototype ends in ‘v’ specifies a pointer to an array of texture generation parameters. If pname is GL_TEXTURE_GEN_MODE, then the array must contain a single symbolic constant. Otherwise, params holds the coefficients for the texture-coordinate generation function specified by pname.
-
glTexImage1D(target, level, internalformat, width, border, format, type, pixels):
Specify a one-dimensional texture image
See also
Parameters: - target (Enumerated constant) – Specifies the target texture.
- level (int) – Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
- internalformat (int) – Specifies the number of color components in the texture.
- width (int) – Specifies the width of the texture image. Must be 2n+2(border) for some integer n. All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
- border (int) – Specifies the width of the border. Must be either 0 or 1.
- format (Enumerated constant) – Specifies the format of the pixel data.
- type (Enumerated constant) – Specifies the data type of the pixel data.
- pixels (
bgl.Buffer
object.) – Specifies a pointer to the image data in memory.
-
glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels):
Specify a two-dimensional texture image
See also
Parameters: - target (Enumerated constant) – Specifies the target texture.
- level (int) – Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
- internalformat (int) – Specifies the number of color components in the texture.
- width (int) – Specifies the width of the texture image. Must be 2n+2(border) for some integer n. All implementations support texture images that are at least 64 texels wide.
- height (int) – Specifies the height of the texture image. Must be 2m+2(border) for some integer m. All implementations support texture images that are at least 64 texels high.
- border (int) – Specifies the width of the border. Must be either 0 or 1.
- format (Enumerated constant) – Specifies the format of the pixel data.
- type (Enumerated constant) – Specifies the data type of the pixel data.
- pixels (
bgl.Buffer
object.) – Specifies a pointer to the image data in memory.
-
glTexParameter (target, pname, param):
B{glTexParameterf, glTexParameteri, glTexParameterfv, glTexParameteriv}
Set texture parameters
See also
Parameters: - target (Enumerated constant) – Specifies the target texture.
- pname (Enumerated constant) – Specifies the symbolic name of a single-valued texture parameter.
- param (Depends on function prototype.) – Specifies the value of pname. If function prototype ends in ‘v’ specifies a pointer to an array where the value or values of pname are stored.
-
glTranslate (x, y, z):
B{glTranslatef, glTranslated}
Multiply the current matrix by a translation matrix
See also
Parameters: y, z (x,) – Specify the x, y, and z coordinates of a translation vector.
-
glViewport(x,y,width,height):
Set the viewport
See also
Parameters: - y (x,) – Specify the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
- height (width,) – Specify the width and height of the viewport. When a GL context is first attached to a window, width and height are set to the dimensions of that window.
-
glUseProgram(program):
Installs a program object as part of current rendering state
See also
Parameters: program (int) – Specifies the handle of the program object whose executables are to be used as part of current rendering state.
-
glValidateProgram(program):
Validates a program object
See also
Parameters: program (int) – Specifies the handle of the program object to be validated.
-
glLinkProgram(program):
Links a program object.
See also
Parameters: program (int) – Specifies the handle of the program object to be linked.
-
glActiveTexture(texture):
Select active texture unit.
See also
Parameters: texture (int) – Constant in GL_TEXTURE0
0 - 8
-
glAttachShader(program, shader):
Attaches a shader object to a program object.
See also
Parameters: - program (int) – Specifies the program object to which a shader object will be attached.
- shader (int) – Specifies the shader object that is to be attached.
-
glCompileShader(shader):
Compiles a shader object.
See also
Parameters: shader (int) – Specifies the shader object to be compiled.
-
glCreateProgram():
Creates a program object
See also
Return type: int Returns: The new program or zero if an error occurs.
-
glCreateShader(shaderType):
Creates a shader object.
See also
Parameters: shaderType (Specifies the type of shader to be created. Must be one of GL_VERTEX_SHADER
,GL_TESS_CONTROL_SHADER
,GL_TESS_EVALUATION_SHADER
,GL_GEOMETRY_SHADER
, orGL_FRAGMENT_SHADER
.) –Return type: int Returns: 0 if an error occurs.
-
glDeleteProgram(program):
Deletes a program object.
See also
Parameters: program (int) – Specifies the program object to be deleted.
-
glDeleteShader(shader):
Deletes a shader object.
See also
Parameters: shader (int) – Specifies the shader object to be deleted.
-
glDetachShader(program, shader):
Detaches a shader object from a program object to which it is attached.
See also
Parameters: - program (int) – Specifies the program object from which to detach the shader object.
- shader (int) – pecifies the program object from which to detach the shader object.
-
glGetAttachedShaders(program, maxCount, count, shaders):
Returns the handles of the shader objects attached to a program object.
See also
Parameters: - program (int) – Specifies the program object to be queried.
- maxCount (int) – Specifies the size of the array for storing the returned object names.
- count (
bgl.Buffer
int buffer.) – Returns the number of names actually returned in objects. - shaders (
bgl.Buffer
int buffer.) – Specifies an array that is used to return the names of attached shader objects.
-
glGetProgramInfoLog(program, maxLength, length, infoLog):
Returns the information log for a program object.
See also
Parameters: - program (int) – Specifies the program object whose information log is to be queried.
- maxLength (int) – Specifies the size of the character buffer for storing the returned information log.
- length (
bgl.Buffer
int buffer.) – Returns the length of the string returned in infoLog (excluding the null terminator). - infoLog (
bgl.Buffer
char buffer.) – Specifies an array of characters that is used to return the information log.
-
glGetShaderInfoLog(program, maxLength, length, infoLog):
Returns the information log for a shader object.
See also
Parameters: - shader (int) – Specifies the shader object whose information log is to be queried.
- maxLength (int) – Specifies the size of the character buffer for storing the returned information log.
- length (
bgl.Buffer
int buffer.) – Returns the length of the string returned in infoLog (excluding the null terminator). - infoLog (
bgl.Buffer
char buffer.) – Specifies an array of characters that is used to return the information log.
-
glGetProgramiv(program, pname, params):
Returns a parameter from a program object.
See also
Parameters: - program (int) – Specifies the program object to be queried.
- pname (int) – Specifies the object parameter.
- params (
bgl.Buffer
int buffer.) – Returns the requested object parameter.
-
glIsShader(shader):
Determines if a name corresponds to a shader object.
See also
Parameters: shader (int) – Specifies a potential shader object.
-
glIsProgram(program):
Determines if a name corresponds to a program object
See also
Parameters: program (int) – Specifies a potential program object.
-
glGetShaderSource(shader, bufSize, length, source):
Returns the source code string from a shader object
See also
Parameters: - shader (int) – Specifies the shader object to be queried.
- bufSize (int) – Specifies the size of the character buffer for storing the returned source code string.
- length (
bgl.Buffer
int buffer.) – Returns the length of the string returned in source (excluding the null terminator). - source (
bgl.Buffer
char.) – Specifies an array of characters that is used to return the source code string.
-
glShaderSource(shader, shader_string):
Replaces the source code in a shader object.
See also
Parameters: - shader (int) – Specifies the handle of the shader object whose source code is to be replaced.
- shader_string (string) – The shader string.
-
class
bgl.
Buffer
¶ The Buffer object is simply a block of memory that is delineated and initialized by the user. Many OpenGL functions return data to a C-style pointer, however, because this is not possible in python the Buffer object can be used to this end. Wherever pointer notation is used in the OpenGL functions the Buffer object can be used in it’s bgl wrapper. In some instances the Buffer object will need to be initialized with the template parameter, while in other instances the user will want to create just a blank buffer which will be zeroed by default.
import bgl myByteBuffer = bgl.Buffer(bgl.GL_BYTE, [32, 32]) bgl.glGetPolygonStipple(myByteBuffer) print(myByteBuffer.dimensions) print(myByteBuffer.to_list()) sliceBuffer = myByteBuffer[0:16] print(sliceBuffer)
-
dimensions
¶ The number of dimensions of the Buffer.
-
to_list
()¶ The contents of the Buffer as a python list.
-
__init__(type, dimensions, template = None):
This will create a new Buffer object for use with other bgl OpenGL commands. Only the type of argument to store in the buffer and the dimensions of the buffer are necessary. Buffers are zeroed by default unless a template is supplied, in which case the buffer is initialized to the template.
Parameters: - type (int) – The format to store data in. The type should be one of GL_BYTE, GL_SHORT, GL_INT, or GL_FLOAT.
- dimensions (An int or sequence object specifying the dimensions of the buffer.) – If the dimensions are specified as an int a linear array will be created for the buffer. If a sequence is passed for the dimensions, the buffer becomes n-Dimensional, where n is equal to the number of parameters passed in the sequence. Example: [256,2] is a two- dimensional buffer while [256,256,4] creates a three- dimensional buffer. You can think of each additional dimension as a sub-item of the dimension to the left. i.e. [10,2] is a 10 element array each with 2 sub-items. [(0,0), (0,1), (1,0), (1,1), (2,0), …] etc.
- template (A python sequence object (optional)) – A sequence of matching dimensions which will be used to initialize the Buffer. If a template is not passed in all fields will be initialized to 0.
Return type: Buffer object
Returns: The newly created buffer as a PyObject.
-


Welcome to Penabela assignment tracker!
Welcome to Penabela assignment tracker!
Welcome to Penabela assignment tracker!
Welcome To Penabela assignment tracker!
Welcome To Penabela assignment tracker!
Welcome To Penabela assignment tracker!
No h7!
Hello
Hello again!
Use p to write things on different lines!
Cheese
Head
- Peng
Peng is the founder of Penabela studio at the age of 20.
- Abid
- Angela


= $this->post->title ?>
= $this->post->content ?>
Edit
Delete
Comentarios
= $this->showComments() ?>
👈


No to BJP even if it offered Indra's throne: Raut
Shiv Sena won't side with the Bharatiya Janata Party even if offered Lord Indra's throne, Sena MP Sanjay Raut said on Friday.
Talking to reporters, Raut reiterated that his party will get the Maharashtra CM's post when the three-party alliance with the Congress and Nationalist Congress Party assumes power.
"The time for offers has ended," Raut said, when asked about reports that the BJP had agreed to share the CM's post with the Sena.
"People of Maharashtra want Sena chief Uddhav Thackeray to become the CM," he said.
Asked if the three non-BJP parties would meet the state governor on Friday itself, Raut quipped, "Why meet the governor when the President's rule is in place".


Komodo. Contribute to jl777/komodo development by creating an account on GitHub.
but those are each of the assetchains that KMD notaries notarize
if you see that they have ac_cc= or ac_ccactivate= in their params, it means they have contracts activated(edited)
CrisF02-Nov-18 07:43 AM
You can look at KMD itself. It has many products coming from it (BarterDEX, JUMBLR, and all of the assetchains, etc.) It is great example of what can be done. And now CC is here!
repo to launch and manage STAKED notary nodes. Contribute to StakedChain/StakedNotary development by creating an account on GitHub.
blackjok3r02-Nov-18 11:18 AM
or tomorrow
Alright02-Nov-18 11:18 AM
Do you want to get a notary up now @gcharang ?
I have my test pubkeys in the source code still, you can use one for the time being
they'll be removed prior to launch for mainnet
gcharang02-Nov-18 11:19 AM
OK. won't my node need it's wif for notarizing?
Alright02-Nov-18 11:19 AM
you can do that or wait until we do an era change
yes
I'd give you the privkey of it
gcharang02-Nov-18 11:19 AM
Ok
Alright02-Nov-18 11:19 AM
if you wait until era change, that would be helpful
we'll need some new notaries to test that it works properly
gcharang02-Nov-18 11:20 AM
I just want to get some experience before mainnet
Alright02-Nov-18 11:20 AM
Ah actually, can you use one of my test keys, then we'll remove it at era change?
that's a good test
smk762 - dracocanis ominator02-Nov-18 11:20 AM
do you still reference oracle for assetchains.json?
Alright02-Nov-18 11:20 AM
not atm
gcharang02-Nov-18 11:20 AM
>Ah actually, can you use one of my test keys, then we'll remove it at era change?
sure
Alright02-Nov-18 11:20 AM
using git, haven't made the oracle of CFEK yet
there's some work to be done there
smk762 - dracocanis ominator02-Nov-18 11:21 AM
cos that would offer update detected capability
Alright02-Nov-18 11:21 AM
what?
I'd recommend you start building your nodes if you want to participate right now
building all the branches will take a few minutes
smk762 - dracocanis ominator02-Nov-18 11:22 AM
cron the oracle, if assetchains changed: ./start.sh
Alright02-Nov-18 11:23 AM
yep, that's the plan
we need some way to bootstrap the assetchains.json prior to running the notary though
I will work on that soon
blackjok3r02-Nov-18 11:24 AM
once we have a permenant chain ... it should be ok ... Can have a webserver server hte file right off chain as backup, or unless chain gets too big for someone they ahev that ption.
Alright02-Nov-18 11:26 AM
I need some notary IPs to act of seed nodes for the iguana network
your IP will be in staked.json
any volunteers?
lol need at least one besides myself
@blackjok3r ?
blackjok3r02-Nov-18 11:29 AM
<IP_ADDRESS>
Alright02-Nov-18 11:29 AM
I need to keep those dupes in staked.json, right?
blackjok3r02-Nov-18 11:29 AM
that will be a seed and notary for the whole time, mostly likely on mainnet aswell


This Friday I did shrooms for the first time. I went into the woods with a friend and his girlfriend. The place was great: right in the mountains: one side rocks, on the other woods, we also had a small river. He is an experienced shroomer while I never touched any strong psychedelics. I was looking forward to shrooming for about one year and wanted some 6 grams in order to have a level 5, but he convinced me to take only 2.5. We all took 2.5... it was mind blowing. He (dl) also took half an acid. I munched the stuff quite quickly. At first it tasted nice but it got worse and worse.
After 40 minutes I felt energized but felt uncomfortable when standing up - so I lied down. Dl went exploring so I was left with her at the base camp. I closed my eyes and saw a lot of dots on a red background. They were moving fast. Soon they formed a sort of walls (made out of dots) and I seemed to move between the walls. She asked: “can you see the dots?” “yeeeeees”, I replied. After a while I opened my eyes and stared at the sky. The clouds soon started to morph in a great spectacle. Then they looked like an embossed jpeg and then morphed again, then neon glow…and so on. They also did this swirling like fractals.
We kept telling each other what we saw and surprisingly it was almost identical. The rocky side seemed to be very far away now and looked as if it was hand drawn. The hill next to us looked very hairy. I just kept smiling and felt like a little baby. Soon dl came back and climbed the hill next to us. He was standing under a tree and we could perfectly see that modern man doesn’t fit in nature anymore. He looked like a tourist visiting mother earth. I joined him, but first I had to cross a tiny river.
It had a width of maybe 1-1.5m. I wasn’t afraid of jumping but I did not know how much power to use. In the end I decided to trust my body and just jump. I succeeded =). He asked me whether I saw the fractal over there.  I looked at the grass where he pointed but there was no fractal to see. Then I sat down and stared around. Suddenly I saw the Fractal! It wasn’t that sort of colored image I would find on the net. I recognized the pattern of the grass! It was a fractal! I felt like being sucked into it.
After this everything looked different. I felt like visiting the moon. I could see all the patterns around me. My thoughts started racing at the speed of light. I began understanding everything. My mind would go like billions of thoughts and images a second. I went down the hill to tell them what I just found out (I was understanding new things, things I newer understood before). We were speaking but all we said was half of the sentence, as we already knew what the other wanted to say. They lied down but I just kept walking around the blankets and said: ”exactly ..exactly…exactly”, from time to time I would turn to them and say: ”its like in pi, you know”.
I understood how everything is and what it is. I was making connections between things, which seemed to have nothing in common, but in fact they were all the same. I realized that everything’s the same and repeating itself. Every time I understood something I laughed. I explained to them that everything is a huge fractal made out of tiny units, which just keep repeating themselves. They we're fractals too. I recognized the patterns in my actions, in my life. We started to discuss this fractal theory. It was a very weird discussion. At first it appeared that we were talking about completely different things but after each said his “line” we understood the relations between the ideas. We were speaking on different levels. We came up with “everybody holds a piece of the puzzle”. We were peaking. Then he replied to something I said ”what do you mean?”. She asked: “what meant the first human to say when he spoke for the first time? Did he mean the same thing you mean?”
This sent me spinning really hard and led me deeper into the universal fractal. I realized that this fractal has infinite levels/dimensions and thus is infinite. It is not infinite in space or time, but in being. It knows no space no time, no nothing. It is made out of the void and knows only suchness. It keeps morphing in and out of itself (which I suppose makes it relate to itself and thus create universes). I understood the infinity and importance of everything. I had some sort of visual or something, where I saw “everything”: the huge fractal, with the tiny fractal units, which are identical to the huge fractal. It was infinite in its every infinity, in every bit, and kept morphing around, in and out. That set loose another thought shower. My mind started racing again at incredible speed.
I was asking myself questions like what was this good for, and what this fractal meant, I was thinking several thoughts at one time, and realized that I knew everything, absolutely everything, and that meant I did not know anything. This is where I experienced something I call “mind-fuck”. A point where my mind freezes, everything gets distorted by an enormous delay and echo. Then I get an error message like in windows but with empty message box. I don’t know how to describe it but I get totally stuck in it. A problem creates itself in order to be solved, just like in pi.
We ate something. Tomato chips had a very lame taste but the texture was very cool. I had brought a lemon, which had a very interesting taste and nice texture. I held it in my hand for about one hour.
I felt like being in a loop. This loop was obviously a fractal bit. I understood this so it led me deeper into the fractal but at the same time it led me out of it. Everything was everything and nothing at the same time. Every second turned out to be the same in essence as the previous one, and the same as the two seconds together, and the same as a year. A lifetime was a twinkling of an eye, +infinite was –infinite at the same time. Now I understand that this means they are one, everything is one, which does not exist, but at that moment I got totally stuck in that and could understand, my mind was overwhelmed.
Now I also understand that these elementary forces were tearing me apart, maybe into nonexistence, but I had no idea what was going on and they kind of needed my approval to make me disappear. At that moment I had no idea of this. Dl said we had passed the peak some time ago and we were waking up. But I couldn’t feel this wake-up. I kept understanding the same thing, since everything was the same. I went deeper and deeper until I reached stagnation. I wasn’t able to draw a conclusion. I started to wake up in the same trip, so basically I got fooled, and wasn’t waking up. I looked at the clock, and although I could see the numbers clearly I wasn’t sure what they meant. What was a minute, or an hour. I had no concept about time. I was getting scared about this not being able to wake up. I did not know at that time that I was scared, I was too busy with understanding what not being able to wake up meant.
After a short while we “decided” we had woken up, but I was still in the same loop. I looked at the watch again, and after analyzing it closely I realized I was before I looked at it the last time.  The loop was evidence of the fractal theory, which led me even deeper and deeper inside it. I got nervous and walked around saying all sorts of stuff about pi and the fractals, which made them, spin too a bit.
I got really scared (without noticing) and dl tried to calm me down. I wanted to explain him my problem but I just said “its….you…..know…pi….exactly….pi”. He started asking me questions, and some sent me further spinning. After a while I thought he was I. and I was I. everybody was a different level of me. I knew that we were all the same. I was really astonished by that and it calmed me down a bit. He told me to stop thinking so much. I tried to stop but couldn’t.” You decide” he said. She said “do you want to get back to the “usual” world or stay in the trip. “
We were standing on a road. Left led to where we came from while right went deeper into the woods. I looked left, looked right, back left, right, then to them. Dl was standing on my left; she was standing on my right. I was in the middle. Now I really felt like everything froze, I was the only one who could move. I had to decide, it was the decision of my life. ”So what do you want?” he asked after a while. ”I don’t know I said”.
I had no idea what I wanted. I couldn’t really see the difference between the two, I had no idea what I was doing there, why I was there, then.  This immediately made me recall a trip I had while listening to shpongle (without drugs). There were three entities in the trip. Before the trip I decided I want to meet them again (I had read that you should determine an aim for the trip before tripping, so that’s what I wanted from my trip except enlightment).
I finally saw that he was the drummer (who would keep me on the ground), she was the goblin (who would lead me deeper and deeper into the jungle),and the truth (3rd entity) was everywhere, just like in that shpongle experience. I felt like I was hit by god, or the truth, or reality… by IT with full force. I now understood that I was completely fooled all the time. I saw that everyone was a drummer or goblin, everyone I knew. The truth and reality was all there in front of my eyes, all my life and I had never seen it. The secret of everything exploded inside of me and I felt like I got stuck in it.
I was so overwhelmed by this that I couldn’t even cry. Out of happiness out of sadness, it was none of the two it was pure being and I could express it, I couldn’t understand it. I heard the pi soundtrack, which made me panic. It has this sound like, ”great now you know and have no idea what to do with it. So what now? You blew it…great job, now there’s nothing to be done, because nothing can be done anymore.”
I didn’t panic about my panic, I knew it was not good and I had to get rid of it. I didn’t even feel like –I- was panicking. I kept telling myself to calm down, to get out of this lucid panic. We walked around and admired nature, but I was still scared. It was very weird to be totally afraid and walk around, look at flowers, at the river and admire their beauty. I just couldn’t stop thinking, or actually I was thinking that I can't stop thinking. Just like I was thinking that I was still scared. I decided that I wanted to wake up but I couldn’t.
We were 5-6 hours into the trip. He asked me again what I wanted. This time I was sure I wanted to get back before the trip. He asked: ”how was it before the trip, where you want to get back?” “Isn’t it like here, look around!”. Puff! Everything was normal again. And I was calm and unpanicked. It was exactly like in ordinary reality.
It has always been. I kept waking up in the same trip but I wasn’t scared anymore. We slowly woke up now. Actually we accepted that we’ve been tripping since we’ve been born. All that shrooms did, was make me realize, that I’m tripping and can’t wake up. That’s not bad, actually it is perfectly alright. In the end a dog visited us and I found him to be very nice.
We walked back to the cottage where they were staying. The guy who stayed there asked as if we’ve been far out (into the woods he meant),and Dl said: “sort of”. We all smiled. e had some sandwiches, which tasted absolutely wonderful. There was no electricity and we sat there by the light of a petrol lamp and discussed the trip.
(this was more than 7 hours after the trip so basically I was down again)
I got home and sat down on the couch while my father was watching TV. He was quite angry because the workers who renovate the house didn’t put some stones where they belong. I found it very amusing. Everything was a fractal and it was a problem that a stone does not sit right…. I tried to watch TV but couldn’t. I heard what they spoke in English (I’m not English) but I was too lazy to decode it. I found that to be very unimportant. I couldn’t really follow the subtitles as I thought it was not worth the effort. So I went to bed and while lying there I got scared about the loop again and so on. The next day I found out my friends got lost on the way back (they drove me home). They got scared and kind of reentered the trip. Maybe I got scared because they got scared. It might be that we were still connected by that telepathy from the trip.
Now I feel like I always used to. Was it a bad trip? Not at all. A difficult one? Yes, but I learned very much from it.
Except the philosophical stuff, I cant sum up in less than several books, I learned that I can't turn things off just like that, I have to distract my mind from them, do it the stylish way, and most of all: ”don’t panic”- this is good to keep in mind but not very helpful in a trip (that’s what I think), in a trip I should better remember to take things with humor and laugh whenever I feel “in danger”.
After the trip I had something like a depression, or instable mood for about 2-3 weeks (which wasn’t bad actually, I might as well call it a melancholic period of reflection), probably because of the posttraumatic stress disorder. I find that first time shroomers should know about this just like they do about the other stuff. After the trip they should talk to other people and try to analyze it.
 It felt like in the trip. I even had closed eye visuals. In the end I understood it (yin-yang is really a smart thingy) and it got sorted out. This time there was no such thing as fear. I would call this a flashback because it happened an hour after I was down from the alcohol and felt just like mushrooms, but then I had trips without taking drugs, and flashbacks from these trips too so I would say you shouldn’t worry about it ;-).
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.